
Tenho um sistema onde cada usuário terá um subdomínio e seu próprio banco de dados. Ex:
usuarioa.system.com
usuariob.system.com
Para manter o subdiretório na barra de navegação enquanto navega pelo sistema, utilizei a seguinte regra:
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 perfeitamente, pois através do PHP usando $_REQUEST, conexão direta com o banco de dados correto. O problema é que essa regra não está aceitando mais de um parâmetro e qualquer alteração que eu fizer, dá erro 403. Então criei uma solução temporária em PHP, mas não quero continuar com ela:
list ($queryString, $id) = explode ("user =", $ _SERVER [' REQUEST_URI ']);
list ($id, $idUsu) = explode (".", $id);
Como poderia passar 02 parâmetros diretamente via htaccess mantendo o subdiretório na barra de navegação?
Desculpe pelo meu inglês, estou usando o tradutor do Bing.
Responder1
RewriteRule ^ (. *) $ http://www.system.com/access/$ 1? user = usera [P]
Se você estiver se referindo à passagem de parâmetros adicionais de string de consulta que estavam na solicitação original para osubstituição, então você precisa do QSA
sinalizador (Query String Append) na RewriteRule
diretiva.
A QSA
bandeiramesclaa string de consulta da solicitação com a string de consulta que você especificou nosubstituição, caso contrário, a string de consulta que você declarou substituirá a string de consulta na solicitação e não será transmitida.
Por exemplo:
RewriteRule (.*) http://www.system.com/access/$1?user=usera [QSA,P]
Aparte:Esse...
RewriteCond% {HTTP_HOST} ^usera.system.com$ [OR] RewriteCond% {HTTP_HOST} ^www.usera.system.com$
É igual ao seguinte e também permite FQDN (terminando em ponto):
RewriteCond% {HTTP_HOST} ^(www\.)?usera\.system\.com [NC]
Lembre-se de escapar dos pontos para corresponder a um ponto literal, caso contrário, você estará combinandoqualquerpersonagem. O NC
sinalizador serve simplesmente para capturar solicitações malformadas.