Web-Server
如何配置 nginx 為靜態站點使用漂亮的 URL?
我有幾個靜態站點(主要由 Sphinx 生成),我正試圖在我的 VPS 上託管。我已經按照指南安裝和配置了 nginx,並且可以成功顯示我的網站,但問題是 URL 是絕對的,而且看起來很難看。
例如,典型的站點文件夾可能如下所示:
/public_html/index.html /public_html/api.html /public_html/quickstart.html
並且 HTTP 請求 / 將 URL 更改為“ http://sitename/index.html ”。我基本上想從 URL 要求中刪除所有靜態前綴,並強制 nginx 將傳入請求路由到 /、/api、/quickstart 到正確的位置,並強制 nginx 在使用者訪問頁面時顯示正確的漂亮 URL。
我試過Google搜尋,但我發現的只是重寫規則,我覺得這些規則對於我想要做的事情來說太複雜了。
任何幫助將不勝感激。
您應該為此使用 try_files。這個想法是您將創建沒有 .html 的 URL,而 Nginx 將默默地添加它。下面的範例配置。
server { #listen/server_name/root here. try_files $uri.html $uri $uri/ @notfound; location @notfound { alias /your/404/file.html return 404; } }
使用靜態位置:
location / { index index.html; root /var/www/nginx-default; } location /api { index api.html; alias /var/www/nginx-default; } location /quickstart { index quickstart.html; alias /var/www/nginx-default; }
正則表達式:
location ~/(.*)$ { alias /var/www/nginx-default/$1.html; }