由於最近調整了一下網址的結構,造成舊網址失效,這時就得透過301進行轉址,本來想說小菜一碟,但卻發現是nginx,這還讓梅干搜遍了網路各個的轉址文件,就這樣來回的測試終於搞懂了nginx的轉址規則,而梅干也整理了幾個常遇到的轉址與規則,因此使用nginx架設的朋友,不妨也一塊來看看吧!
1.將舊網頁轉新網頁,如:abc.html=>post/abc.html
若是網頁的話,只需在^/….$中間加入,原來的網頁名稱,後方則是導向的新網頁。
location /{
rewrite ^/abc.html$ /post/caffeine.html permanent;
}
rewrite ^/abc.html$ /post/caffeine.html permanent;
}
2.將舊目錄轉向新目錄,如:tag=>tags
目錄與檔案在轉址上,有沒有發現,當是目錄的結構下,後方需加一個 / ,同時舊目錄第一個()為$1開始計算,若有多個就$1、$2、$3…依此類推。
location /{
rewrite ^/tag/(.*)/$ /tags/$1/ permanent;
}
rewrite ^/tag/(.*)/$ /tags/$1/ permanent;
}
3.自動將目錄名稱後方加入斜線。
location / {
if (-d $request_filename){<br>
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}
}
if (-d $request_filename){<br>
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}
}
4.http強制轉向https
這一需加在server 80的設定底下。
return 301 https://$host$request_uri;