精品国产免费观看久久久_久久天天躁狠狠躁夜夜爽_无码人妻少妇久久中文字幕_狠狠做深爱婷婷久久综合一区

網絡建站知識

精準傳達 ? 價值共享

洞悉互聯網前沿資訊,探尋網站營銷規律

查看其它板塊

Nginx Rewrite偽靜態重寫URL尾部自動增加/斜杠

作者:狐靈科技 | 2020-02-07 23:18 |點擊:

 很多時候我們使用nginx做偽靜態的時候需要使用目錄形式的URL。這也會出現一些問題,比如帶/斜杠的可以打開 不帶斜杠的就404了。
 

有時候問了能兼容所有URL,偽靜態就要搞好多。 最近在開發門戶網站 客戶還有靜態網址,偽靜態規則數量已經將近200條。很多用了目錄形式的URL
 

這里記錄一下一個在URL尾部自動增加斜杠,URL尾部沒有斜杠的自動跳轉到帶斜杠的URL網址。并且不影響其他文件。

往上很多教程是直接 rewrite 跳轉,這樣如果你有其他文件的話也一樣會跳轉。我做了些改進,增加了判斷。可以完美兼容。

規則如下:

 

if (!-f $request_filename){
rewrite ^(.*[^/])$ $1/ permanent;
}
?

注意將上面三行代碼放到你偽靜態規則的 尾部,這樣不影響已經存在的規則。自己的規則匹配不到的情況下最后才會跳轉。

這樣可以針對目錄  針對html結尾的就不好用了 更好的解決辦法在文末

放的位置如下圖


Nginx Rewrite偽靜態重寫URL尾部自動增加


這樣還會出現一個問題 那就是如果訪問的是html 文件 也會自動加 就變成了


https://www.www.kxlw.net/jzzs/876.html/

這樣也導致網址打不開 因此要加一個判斷 最終使用如下代碼  同樣加在最后面
 

  1. #解決目錄自動加斜杠  
  2. if (-d $request_filename) {  
  3.   
  4.     rewrite ^/(.*)([^/])$ http://$http_host/$1$2/ permanent;  
  5.   
  6. }  

接下來對這段代碼進行一個解釋:

1、if (-d $request_filename),如果請求的是一個文件夾,則為真,進到if語句中執行

2、rewrite 是執行 url 重寫操作。

3、^/(.*)([^/])$ 表示以/符號開始并緊跟著任何字符,同時不是以/為結束的字符串,在我的url 中,(.*) 表示的 news。

4、http://$host/$1$2/ 表示的重寫后的地址,$host 是請求的域名,$1 是前面第一個括號里的內容,在我的 url 里就是 news。

5、permanent 表示,返回永久重定向的 HTTP 狀態 301。

如沒特殊注明,文章均為狐靈科技原創,轉載請注明?? "Nginx Rewrite偽靜態重寫URL尾部自動增加/斜杠
多一份免費策劃方案,總有益處。

請直接添加技術總監微信聯系咨詢

網站設計 品牌營銷

多一份參考,總有益處

聯系狐靈科技,免費獲得專屬《策劃方案》及報價

咨詢相關問題或預約面談,可以通過以下方式與我們聯系

業務熱線:15082661954 / 大客戶專線:15523356218