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

參考資料

留言