Pasar más de un parámetro por htaccess

Pasar más de un parámetro por htaccess

Tengo un sistema donde cada usuario tendrá un subdominio y su propia base de datos. Ex:

usuarioa.system.com
usuariob.system.com

Para mantener el subdirectorio en la barra de navegación mientras navegaba por el sistema, utilicé la siguiente regla:

RewriteEngine on
RewriteCond% {HTTP_HOST} ^ usera.system.com $ [OR]
RewriteCond% {HTTP_HOST} ^ www.usera.system.com $
RewriteRule ^ (. *) $ http://www.system.com/access/$ 1? user = usera [P]

Está funcionando perfectamente, porque a través de PHP usando $ _REQUEST, conexión directa a la base de datos correcta. El problema es que esta regla no acepta más de un parámetro y cualquier cambio que hago da error 403. Así que creé una solución temporal en PHP, pero no quiero continuar con ella:

list ($queryString, $id) = explode ("user =", $ _SERVER [' REQUEST_URI ']);
list ($id, $idUsu) = explode (".", $id);

¿Cómo podría pasar 02 parámetros directamente a través de htaccess manteniendo el subdirectorio en la barra de navegación?

Perdón por mi inglés, estoy usando el traductor de Bing.

Respuesta1

RewriteRule ^ (. *) $ http://www.system.com/access/$ 1? user = usera [P]

Si se refiere a pasar parámetros de cadena de consulta adicionales que estaban en la solicitud original alsustitución, entonces necesita el QSAindicador (Query String Append) en la RewriteRuledirectiva.

La QSAbanderafusionala cadena de consulta de la solicitud con la cadena de consulta que ha especificado en elsustituciónDe lo contrario, la cadena de consulta que usted indicó sobrescribirá la cadena de consulta en la solicitud y no se pasará.

Por ejemplo:

RewriteRule (.*) http://www.system.com/access/$1?user=usera [QSA,P]

Aparte:Este...

RewriteCond% {HTTP_HOST} ^usera.system.com$ [OR]
RewriteCond% {HTTP_HOST} ^www.usera.system.com$

Es igual al siguiente y también permite FQDN (que termina en un punto):

RewriteCond% {HTTP_HOST} ^(www\.)?usera\.system\.com [NC]

Recuerde escapar de los puntos para que coincidan con un punto literal; de lo contrario, estará haciendo coincidircualquierpersonaje. La NCbandera es simplemente para detectar solicitudes con formato incorrecto.

información relacionada