Nginx schreibt URLs innerhalb einer Einzelseiten-App neu

Nginx schreibt URLs innerhalb einer Einzelseiten-App neu

Ich hatte Probleme mit dieser Nginx-Konfiguration und nachdem ich diese Site durchforstet habe, frage ich mich, ob das überhaupt möglich ist.

Ich habe eine sehr einfache Single-Page-App mit folgendem Routing:

server {
        listen 80 default_server;

        root /var/www/html;

        location / {
                try_files $uri $uri/ /index.html;
        }
}

Die von dieser Konfiguration bereitgestellte SPA (eine Gatsby-Site, falls das wichtig ist) enthält Routen wie domain.com/aboutund , domain.com/about/some-pagedie bestimmte Inhalte bereitstellen. Es gibt jedoch eine ältere Version der Website, die keine SPA war und Seiten wie domain.com/about.htmlund enthält domain.com/about.html#some-page, die jeweils gleichwertige Inhalte bereitstellen.

domain.com/about.htmlIch würde wirklich gern umleiten können , domain.com/aboutsodass alte Links zu der Site, die bereits im Umlauf sind, noch immer auf die richtige Route des SPA führen, aber alle meine Versuche, Umschreibungen vorzunehmen, geben entweder einfach eine 404-Fehlermeldung zurück oder führen zurück zur Wurzel.domain.com/about.html#some-pagedomain.com/about/some-page

Ist es möglich, die URL sowohl umzuschreiben (also domain.com/about.html> domain.com/about) als auch umzuleiten, /index.htmlsodass sie als SPA funktioniert?

Antwort1

Ich konnte dieses Problem lösen, indem ich die Nginx-Konfiguration unverändert ließ und die URL-Umschreibungen auf der Clientseite in Gatsby mithilfe von Reach Router vornahm.

verwandte Informationen