Nginx Rewrite实现WordPress伪静态

说明:
    由于wordpress默认采用类似http://www.gaingreat.com/?p=910这样的地址。这一方便不便于观看,另一方面听说也不利于SEO。
    因此一直希望将 wordpress地址改成http://www.gaingreat.com/centos升级python2-4到2-7/这样
或http://www.gaingreat.com/934.html的效果。
    nginx不像apache可以通过写.htaccess实现,需要在虚拟主机里写rewrite规则。
    wordpress是3.5.1,试了下可以用!

实现:
1.其实Nginx下配置WordPress的Rewrite还是比较简单的,在server {………………}里面加入以下内容

location / {
        index index.html index.php;
        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;
        }
    }

 

2.登陆wordpress管理后台,设置|固定链接,选择需要的地址格式,保存即可。
如要实现http://www.gaingreat.com/centos升级python2-4到2-7/这样子的效果,就选自定义,填写/%postname%/
如要实现http://www.gaingreat.com/934.html这样子,就选自定义,填写/%post_id%.html

附录:
1.由于之前的文章都是以http://www.gaingreat.com/?p=910这样的格式化保存,虽然改成http://www.gaingreat.com/centos升级python2-4到2-7/这样子,使用原来的地址还是可以访问的。

“Nginx Rewrite实现WordPress伪静态”的2个回复

    1. http{

      server
      {
      ……
      location /
      {
      index index.html index.php;
      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;
      }
      }
      ……
      }

      }
      这里,location /{………………}放在server{}里面,最好放前面点。nginx是从上到下匹配,避免被其它规划匹配。

发表评论

邮箱地址不会被公开。 必填项已用*标注