Nginx下WordPress链接(url)301永久重定向。

  

    问题:

在几个blog程序中折腾的结果~ 

导致url连续二次变化。这是第三次了。 

nginx 通过rewrite 使用 “permanent;”参数 成301永久url重定向。 

以往的url结构 

https://www.iamle.com/post/199/ 

现在需要的url结构 

https://www.iamle.com/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://deerchao.net/tutorials/regex/regex.htm 

    简单说明下(认真学习正则表达式-我没认真学^_^): 

^ 表示 匹配字符串的开始. 

$ 表示 匹配字符串的结束. 

$1 $2 表示变量 

([0-9]+) 表示至少1个、最多不限制的数字串. 

头看晕了(不是程序员。)。写出表达式。 

—————————————————- 

—————————————————- 

[sourcecode language=”css”]
rewrite ^/post/([0-9]+)/$ /archives/$1.html permanent;
rewrite ^/html/y2009/([0-9]+).html$ /archives/$1.html permanent;
[/sourcecode]

  

把表达式加入nginx conf 文件。 

—————————————————– 

location / {  

放这里。 

—————————————————- 

       完成配置:

这是我的完整的WordPress nginx rewrite 规则配置。 

1、nginx rewrite网址url变更301重定向。 

2、nginx rewrite iamle.cn 重定向到 www.iamle.com 。 

3、nginx WordPress rewrite伪静态规则(得以支持WordPress的自定义url)。 

[sourcecode language=”php”]
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 ^(.*)  https://www.iamle.com$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;
                                      }
                    } 
[/sourcecode]

  

        测试结果:

访问:https://www.iamle.com/post/199/ 即可被跳转到 https://www.iamle.com/archives/199.html

4 评论

    1. 😉 恩。就是并发数比Apache高而已。 跑php的东西瓶颈还是在php本身以及搭配的数据库。如mysql。
      用压力测试工具试了下。 静态页面并发数打老高nginx的cpu使用率都不高。 如果打php页面 cgi-php立马给你cpu跑100%。 😥 。
      个人站,并发数不大的站nginx确实没多大必要。用功能强大,老牌的Apache很好。 最近发现www.qq.com的前端站都用nginx了。nginx确实是一个非常不错的高并发反向代理服务器软件。

回复 创意网 取消回复