Eu vejo duas maneiras:
- adicione
|$
a regexp - configure um
location = /
e execute /index.php em qualquer back-end do PHP que você usar (provavelmente configurandofastcgi_param SCRIPT_FILENAME .../index.php;
Preciso transformar meu site anterior executando o wordpress em um único site de página. Meu site pode conter apenas uma página de destino e quero que todos os URLs antigos redirecionem para 301 a raiz do meu site.
Eu tenho esse trabalho, mas não exatamente como eu prefiro. Atualmente, tudo está redirecionando para mysite.com/index.html, mas quero direcioná-lo diretamente para o mysite.com.
Este é o código de redirecionamento que estou usando nas minhas tags de localização / {}:
try_files $uri $uri/ /index.php?q=$uri&$args;
if ( $uri !~ ^/(index\.php|css|images|uploads|js|robots\.txt|favicon\.ico|wp-admin|launch|wp-login\.php|inc) ) {
rewrite ^ http://www.mysite.com/index.html permanent;
}
Esse código redireciona tudo, exceto os diretórios e arquivos específicos que listei. Dessa forma, eu ainda posso acessar meu diretório wp-admin para adicionar conteúdo ao Wordpress, então quando eu puxar o switch mais tarde, eu posso ligar o site novamente e ter todo o conteúdo atualizado e pronto para o lançamento.
Se eu remover o index.html do meu redirecionamento acima, meu site entrará em um loop de redirecionamento. Se eu fizer a regra de reescrita, aponte para /, então meu site também entrará em um loop de redirecionamento.
Alguém pode me ajudar a atualizar esse código para que index.html não mostre a janela do navegador como o URL real? Eu realmente gostaria que o URL real fosse www.mysite.com, e não www.meusite.com/index.html.
EDITAR:
O que eu realmente preciso é especificar o diretório raiz na minha declaração! Mas se eu adicionar | / | ele permite que todos os arquivos e subdiretórios sejam ignorados ... o que significa que minha regra de redirecionamento nunca é chamada.
Posso especificar apenas um diretório raiz e não incluir nenhum dos arquivos ou subdiretórios desse diretório raiz? Desta forma eu posso dizer ao nginx para não redirecionar em / do meu domínio, mas se ele encontrar /index.html ele irá redirecionar para /.