Nginx
Nginx 在單頁應用程序中重寫 url
我一直有這個 nginx 配置的問題,在搜尋了這個站點之後,我想知道它是否可能。
我有一個非常簡單的單頁應用程序,具有以下路由:
server { listen 80 default_server; root /var/www/html; location / { try_files $uri $uri/ /index.html; } }
此配置提供的 SPA(如果重要的話,是 Gatsby 站點)包含類似
domain.com/about
和domain.com/about/some-page
提供特定內容的路由。但是,有一個舊版本的網站不是 SPA,它有類似domain.com/about.html
和的頁面domain.com/about.html#some-page
,這些頁面分別提供相同的內容。我真的很希望能夠重定向
domain.com/about.html
>domain.com/about
和domain.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 工作?
我能夠通過保持 nginx 配置相同並使用 Reach Router 在 Gatsby 的客戶端上重寫 URL 來解決這個問題。