Nginx reescreve URLs em um aplicativo de página única

Nginx reescreve URLs em um aplicativo de página única

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/aboute domain.com/about/some-pageque 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.htmle 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/aboute domain.com/about.html#some-page> domain.com/about/some-pagepara 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.htmlque 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.

informação relacionada