Eu tenho uma configuração onde um site estático fica na pasta raiz e o Wordpress está localizado em uma subpasta. Portanto, preciso reescrever todas as solicitações em index.html, enquanto todas as solicitações relacionadas ao Wordpress devem ir para a subpasta. Estou conseguindo isso usando dois arquivos .htaccess: um na raiz e outro na subpasta do Wordpress.
Raiz .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/wp-.+
RewriteCond %{REQUEST_URI} !^/wordpress/
RewriteRule (wp-.*)$ /wordpress/$1 [L]
# Rewrite rule for frontend
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>
Subpasta Wordpress .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
Isso funciona, mas quando tento abrir /wp-admin/
sou redirecionado /wp-login.php?redirect_to=https%3A%2F%2Fwww.example.com%2Fwordpress%2Fwp-admin%2F&reauth=1
para que a subpasta seja exposta no URL.
Existe uma maneira de ocultar a subpasta?
Responder1
Para ocultar a subpasta no URL para solicitações relacionadas ao WordPress, você pode modificar ligeiramente sua configuração. Você pode manter o arquivo raiz .htaccess como está, mas faça algumas alterações no arquivo .htaccess na subpasta do WordPress. Veja como você pode fazer isso:
- Modifique o arquivo .htaccess na subpasta do WordPress (
e.g.,
/wordpress/) da seguinte maneira:
Adicione esta linha para evitar a exposição da subpasta no URL
RewriteCond %{REQUEST_URI} !^/wordpress/
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /wordpress/index.php [L]
Ao adicionar a condição RewriteCond %{REQUEST_URI} !^/wordpress/ , você garante que as solicitações para a pasta /wp-admin/ não serão afetadas por esta regra de reescrita, portanto, a subpasta não será exposta no URL para solicitações relacionadas ao WordPress.
No seu arquivo raiz .htaccess, você pode simplificar as regras para reescrever para
RewriteEngine ativadoindex.html
:Excluir solicitações para a subpasta /wordpress/ desta regra
RewriteCond %{REQUEST_URI} !^/wordpress/
Reescrever regra para frontend
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.html [L]
Com essas modificações, as solicitações relacionadas ao WordPress ainda serão tratadas pela subpasta do WordPress, e a subpasta não será exposta na URL ao acessar /wp-admin/. Outras solicitações serão reescritas em index.html na pasta raiz como antes.