Eu tentei várias expressões regulares ( ^/$
, ^index.php$
, ^$
) para reescrever/proxy apenas a página inicial de um site WordPress por meio de .htaccess
. Para constar, tenho os módulos apropriados carregados para fazer isso e posso fazer isso para outros caminhos com expresso regular específico, mas não apenas para a página inicial. Outras respostas indicaram ^$
e ^/$
funcionarão, mas não está funcionando para mim. Como é possível direcionar para obter apenas a página inicial?
RewriteEngine On
RewriteBase /
RewriteRule ^$ http://some-other-domain.com [P]
O objetivo final é servir uma página de outro site apenas para a página inicial. Talvez haja uma abordagem melhor?
Responder1
Tente algo como o seguinte, no topo do .htaccess
arquivo,anteso controlador frontal do WordPress:
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^(index\.php)?$ http://some-other-domain.com/ [P]
As diretivas RewriteBase
e RewriteEngine
não são necessárias aqui. O RewriteEngine
presumivelmente já aparece posteriormente no arquivo como parte do # BEGIN WordPress
bloco de código (a ordem não é importante).
Observe o sufixo de barra nosubstituiçãocorda. Isto é umobrigatórioparte do URL (você não pode ter um caminho de URL vazio). Se você omitir aqui, algo mais deverá "consertar" mais tarde. No caso de um redirecionamento externo, onavegadoriria "consertar", mas não há "navegador" aqui.
Isto corresponde a um caminho de URL vazio e index.php
(no caso de mod_dir estar emitindo a subsolicitação para o índice do diretórioantesmod_rewrite envia a solicitação através de mod_proxy). Odoençaque verifica o REDIRECT_STATUS
env var é necessário neste caso para evitar proxytudo, já que o front-controller do WordPress reescreve tudo em index.php
. A condição garante que apenas solicitações diretas sejam correspondidas, e não solicitações reescritas.
Aparte:ARewriteRule
padrãolike ^/$
nunca corresponderá em um .htaccess
contexto. Isto só funcionaria se a directiva fosse utilizada de uma formaservidor(ouhost virtual) contexto.