问题:
在几个blog程序中折腾的结果~ 导致url连续二次变化。这是第三次了。 nginx 通过rewrite 使用 “permanent;”参数 成301永久url重定向。 以往的url结构 http://www.jb51.net/post/199/ 现在需要的url结构 http://www.jb51.net/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 http://www.jb51.net/tools/zhengze.html
简单说明下(认真学习正则表达式-我没认真学^_^): ^ 表示 匹配字符串的开始. $ 表示 匹配字符串的结束. $1 $2 表示变量 ([0-9]+) 表示至少1个、最多不限制的数字串. 头看晕了(不是程序员。)。写出表达式。 —————————————————- —————————————————- . 代码如下: <A class="st_tag internal_tag" title="标签 rewrite 下的日志" href="http://www.iamle.com/archives/tag/rewrite" rel=tag>rewrite</A> ^/post/([0-9]+)/$ /archives/$1.html permanent; <A class="st_tag internal_tag" title="标签 rewrite 下的日志" href="http://www.iamle.com/archives/tag/rewrite" rel=tag>rewrite</A> ^/html/y2009/([0-9]+).html$ /archives/$1.html permanent;
把表达式加入nginx conf 文件。 —————————————————– location / { 放这里。 } —————————————————- 完成配置:
这是我的完整的WordPress nginx rewrite 规则配置。 1、nginx rewrite网址url变更301重定向。 2、nginx rewrite iamle.cn 重定向到 www.jb51.net 。 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 ^(.*) http://www.jb51.net$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; } }
测试结果: 访问:http://www.jb51.net/post/199/ 即可被跳转到 http://www.jb51.net/archives/199.html |