国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > Nginx > 正文

nginx url自動加斜杠及301重定向的問題

2024-08-30 12:28:14
字體:
來源:轉載
供稿:網(wǎng)友

nginx url自動加斜杠問題及301重定向,URL指向一個目錄并且在最后沒有包含斜杠,會301重定向跳轉,添加server_name或修改訪問重定向。

nginx url自動加斜杠問題及301重定向

內(nèi)部服務器使用nginx,做網(wǎng)站測試之用。不同域名使用端口號區(qū)分,如www用默認的80端口,其它域名用81,82...

有時直接在地址欄敲網(wǎng)址,會發(fā)現(xiàn)跳轉到localhost.localdomain的情況。

比如858端口下有個hx目錄,這樣正常訪問:http://192.168.1.158:858/hx/

但如果少打了一個/,如:http://192.168.1.158:858/hx

就會自動跳轉到:http://localhost.localdomain:858/hx/

經(jīng)分析是nginx自動加斜杠的問題:

在某些情況下(具體可參考 wiki.nginx.org),Nginx 內(nèi)部重定向規(guī)則會被啟動。

例如,當URL 指向一個目錄并且在最后沒有包含“/”時,Nginx 內(nèi)部會自動的做一個 301 重定向,這時會有兩種情況:

1、server_name_in_redirect on(默認),URL 重定向為: server_name 中的第一個域名 + 目錄名 + /;

2、server_name_in_redirect off,URL 重定向為: 原 URL 中的域名 + 目錄名 + /。

If server_name_in_redirect is on, then Nginx will use the first value of the server_name directive for redirects. If server_name_in_redirect is off, then nginx will use the requested Host header.

原配置,沒有加server_name:

server {listen 858;}

修改后:

server {listen 858;server_name 192.168.1.158;}

或:

server {listen 858;server_name_in_redirect off;}

此問題解決。訪問http://192.168.1.158:858/hx可以正常跳轉到http://192.168.1.158:858/hx/了。

分析:

服務器的hostname是localhost.localdomain,當沒有設置server_name時,server_name就變成hostname了。

默認又是server_name_in_redirect on,因此原配置訪問hx目錄時,會重定向到localhost.localdomain/hx/了。

第一種修改方法,加了server_name,那就跳轉到server_name + 目錄名 + /,對了。

第二種修改訪問,重定向為:訪問的URL+目錄名+/,也對了。

泛解析配置:

server{listen 80;server_name _;}

如果有個phpcheck目錄,有人不小心鏈了http://www.plchome.org/phpcheck這樣一個鏈接,就會重定向到http://_/phpcheck/。

所以這種在沒法指定server_name的情況下,要加上server_name_in_redirect off。

server{listen 80;server_name _;server_name_in_redirect off;}

這時,訪問www.plchome.org/phpcheck,就會自動并且正確的跳轉到www.plchome.org/phpcheck/了。

晚上升級一臺服務器的nginx版本時,在changes里看到:

Changes with nginx 0.8.48 03 Aug 2010*) Change: now the "server_name" directive default value is an empty name "".Thanks to Gena Makhomed.*) Change: now the "server_name_in_redirect" directive default value is "off".

從nginx 0.8.48起server_name_in_redirect已經(jīng)默認為off了,不再需要指定了。

以上所述是小編給大家介紹的nginx url自動加斜杠及301重定向的問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網(wǎng)網(wǎng)站的支持!


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 罗定市| 台中市| 岚皋县| 民权县| 察隅县| 名山县| 西畴县| 蒙自县| 吉隆县| 安岳县| 尤溪县| 舒城县| 台南县| 隆子县| 沧州市| 郯城县| 昌黎县| 麦盖提县| 滦平县| 穆棱市| 巴中市| 库车县| 友谊县| 阿拉尔市| 鲁甸县| 休宁县| 东源县| 伊通| 五台县| 上栗县| 丰县| 怀仁县| 石渠县| 许昌县| 微山县| 庆阳市| 平谷区| 阳原县| 乌兰县| 彩票| 永寿县|