問題:
在幾個blog程序中折騰的結果~
導致url連續二次變化。這是第三次了。
nginx 通過rewrite 使用 “permanent;”參數 成301永久url重定向。
以往的url結構
//www.jfrwli.cn/post/199/
現在需要的url結構
//www.jfrwli.cn/archives/199.html
過程:
學習nginx的配置規則,學習正則表達式(我也沒接觸過,學唄。)
nginx的中文維科:http://wiki.nginx.org/NginxChs
正則表達式入門:http://zh.wikipedia.org/zh-cn/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F
//www.jfrwli.cn/tools/zhengze.html
簡單說明下(認真學習正則表達式-我沒認真學^_^):
^ 表示 匹配字符串的開始.
$ 表示 匹配字符串的結束.
$1 $2 表示變量
([0-9]+) 表示至少1個、最多不限制的數字串.
頭看暈了(不是程序員。)。寫出表達式。
—————————————————-
—————————————————-
<A class="st_tag internal_tag" />
把表達式加入nginx conf 文件。
—————————————————–
location / {
放這里。
}
—————————————————-
完成配置:
這是我的完整的WordPress nginx rewrite 規則配置。
1、nginx rewrite網址url變更301重定向。
2、nginx rewrite iamle.cn 重定向到 www.jfrwli.cn 。
3、nginx WordPress rewrite偽靜態規則(得以支持WordPress的自定義url)。
location / {
rewrite ^/post/([0-9]+)/$ /archives/$1.html permanent;
rewrite ^/html/y2009/([0-9]+).html$ /archives/$1.html permanent;
if ($host !~ "^www\.iamle\.com$"){
rewrite ^(.*) //www.jfrwli.cn$1 permanent;
}
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
}
測試結果:
訪問://www.jfrwli.cn/post/199/ 即可被跳轉到 //www.jfrwli.cn/archives/199.html