Nginx 在單頁應用程式中重寫 url

Nginx 在單頁應用程式中重寫 url

我一直遇到這個 nginx 配置的問題,在瀏覽了這個網站之後,我想知道這是否可能。

我有一個非常簡單的單頁應用程序,具有以下路由:

server {
        listen 80 default_server;

        root /var/www/html;

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

此配置提供的 SPA(Gatsby 站點,如果重要的話)包含類似domain.com/aboutdomain.com/about/some-page等服務特定內容的路由。但是,該網站有​​一個舊版本,它不是 SPA,它有類似domain.com/about.html和 的頁面domain.com/about.html#some-page,並且這些頁面分別提供相同的內容。

我真的希望能夠重定向domain.com/about.html>domain.com/aboutdomain.com/about.html#some-page> domain.com/about/some-page,以便世界上已經存在的網站的舊鏈接仍然可以轉到 SPA 的正確路線,但我所有創建重寫的嘗試都只是返回 404或者直接回到根。

是否可以重寫 URL (so domain.com/about.html> domain.com/about) 並重定向該 URL,/index.html使其作為 SPA 工作?

答案1

我能夠透過保持 nginx 配置相同並使用 Reach Router 在 Gatsby 的客戶端上進行 URL 重寫來解決這個問題。

相關內容