No momento, estou usando hospedagem compartilhada e não tenho como colocar meus arquivos fora da pasta "public_html".
Para contornar isso, eu quero reescrever meu site "raiz" para um subdiretório usando o script abaixo em um arquivo .htaccess:
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/subdir/
RewriteRule ^(.*)$ /subdir/$1
O que funciona muito bem, exceto quando eu navego para www.example.com/subdir/. Esse URL não redireciona para nenhum lugar, ele simplesmente exibe o subdiretório. Este é um problema para URLs relativos e tal.
Existe uma maneira de continuar reescrevendo minha raiz para um subdiretório enquanto também reescrevendo www.example.com/subdir/ para www.example.com?
Respostas:
1 para resposta № 1Você pode usar esta regra no root .htaccess:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/subdir/ [NC]
RewriteRule ^(.*)$ subdir/$1 [L]
E use essa regra em /subdir/.htaccess
:
RewriteEngine On
RewriteBase /subdir/
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{THE_REQUEST} /subdir/(S*)s
RewriteRule ^ /%1? [R=302,L,NE]