Foi assim que eu fiz.
RewriteCond %{HTTP_HOST} ^(www\.)?bar\.com$
RewriteCond %{THE_REQUEST} "(GET|POST) \/bar\/(.*) HTTP/"
RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteRule ^(.*)$ /bar/$1 [L]
Eu tenho dois domínios que apontam para o mesmo IP foo.com
e bar.com
Eu não tenho acesso à configuração de um host virtual para os domínios, mas consegui criar .htaccess
regras para que ele seja configurado assim.
Tendo a configuração acima agora, eu poderia ter diferentes arquivos index.html
para acessar a raiz do domínio.
Esta é a regra que implementei para bar.com
RewriteCond %{HTTP_HOST} ^(www\.)?bar\.com$
RewriteCond %{REQUEST_URI} !bar/
RewriteRule ^(.*)$ bar/$1 [L]
A regra acima funciona perfeitamente, no entanto, quando navego para bar.com/bar
, não me dá um 404
, mas ainda aponta para a raiz do meu diretório bar
.
Então, criei outro RewriteCond
para lidar com esse problema.
RewriteCond %{HTTP_HOST} ^(www\.)?bar\.com$
RewriteCond %{THE_REQUEST} "(GET|POST) \/bar\/ HTTP/"
Enquanto o RewriteCond
funciona perfeitamente. Não tenho certeza de qual regra de reescrita eu escreveria para que, quando o usuário visitar bar.com/bar
, aponte para o diretório /bar/bar
e, assim, me forneça um 404
Eu tentei o RewriteRule
abaixo, mas parece que não funciona
RewriteRule ^bar/(.*)$ bar/bar/$1 [L,QSA]
Por isso, criei temporariamente um redirecionamento para o domínio principal bar.com
.
RewriteRule ^bar/(.*)$ http://bar.com/$1 [L,QSA,R=301]
Foi assim que eu fiz.
RewriteCond %{HTTP_HOST} ^(www\.)?bar\.com$
RewriteCond %{THE_REQUEST} "(GET|POST) \/bar\/(.*) HTTP/"
RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteRule ^(.*)$ /bar/$1 [L]
Tags .htaccess apache-2.2