Nginx 資料夾網址的結尾如果沒有斜線,會發生 404 錯誤

問題: 瀏覽 Nginx 網頁伺服器的資料夾網址,結尾如果沒有斜線 ( 例如 http://your.domain/folder  ),會發生 404 錯誤。必須手動將結尾加上斜線 ( 例如 http://your.domain/folder/  ) 才可以順利瀏覽網頁。



解決方式:
1. 修改 Nginx 設定檔
# sudo vi /etc/nginx/nginx.conf  

2. 原本 Nginx 設定檔,需要移除 location /folder 後面的斜線
location /folder/ {
           alias /usr/share/nginx/html/folder/;
           index index.html index.php;
        }
即修改為
location /folder {
           alias /usr/share/nginx/html/folder/;
           index index.html index.php;
        }

3. 重新載入設定檔,讓修改生效
# sudo service nginx reload 

Log 檔記錄
# sudo tail  /var/log/nginx/access.log
1. 修改設定檔前: 404 網頁錯誤狀態
[06/Jan/2016:10:13:03 -0500] "GET /folder HTTP/1.1" 404 570 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36" "-"
2. 修改設定檔後: 301 重定位的狀態,再到 200 請求成功的狀態

[06/Jan/2016:10:17:19 -0500] "GET /folder HTTP/1.1" 301 184 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36" "-" 
[06/Jan/2016:10:17:19 -0500] "GET /folder/ HTTP/1.1" 200 90 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36" "-"

伺服器環境版本: 

  • CentOS Linux release 7.2.1511 (Core)
  • nginx version: nginx/1.8.0

參考資料

留言