
Tenho tido problemas com esta configuração do nginx e, depois de vasculhar este site, estou me perguntando se isso é possível.
Eu tenho um aplicativo de página única muito simples com o seguinte roteamento:
server {
listen 80 default_server;
root /var/www/html;
location / {
try_files $uri $uri/ /index.html;
}
}
O SPA (um site Gatsby, se for o caso) atendido por esta configuração contém rotas como domain.com/about
e domain.com/about/some-page
que veiculam conteúdo específico. Porém, existe uma versão mais antiga do site que não era SPA e possui páginas como domain.com/about.html
e domain.com/about.html#some-page
, e estas veiculam conteúdo equivalente, respectivamente.
Eu realmente gostaria de poder redirecionar domain.com/about.html
> domain.com/about
e domain.com/about.html#some-page
> domain.com/about/some-page
para que links antigos do site que já estão no mundo ainda sigam para a rota correta do SPA, mas todas as minhas tentativas de criar reescritas apenas retornam um 404 ou direto de volta à raiz.
É possível reescrever o URL (então domain.com/about.html
> domain.com/about
) e também redirecioná-lo para /index.html
que funcione como um SPA?
Responder1
Consegui resolver esse problema mantendo a mesma configuração do nginx e reescrevendo a URL no lado do cliente dentro do Gatsby usando o Reach Router.