WordPress nginx 伪静态设置方法

发现有的设置方法不太全。既要设置nginx,又要设置wordpress,且wordpress里哪种方法好呢?

所以本文共分为三部分。

一、nginx设置方法

共有两种。

Nginx下wp伪静态第一种配置方式

1
2
3
4
5
6
7
8
9
10
11
12
13
location / {
    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;
    }
}

完整的配置参考

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
server {
        listen       80;
        server_name  niliu.me;
        root   /var/www/html/niliu;
        index  index.html index.htm index.php;
        location / {
                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;
                }
        }
        # redirect server error pages to the static page /50x.html
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /var/www/html/niliu$fastcgi_script_name;
            include        fastcgi_params;
        }
    }

一开始的时候location下面是这么写的, 根本解释不了那个s, 对if语句中的判断不清晰,可以参考Nginx中文文档

1
2
3
4
if (!-e $request_filename) {
     rewrite  ^(.*)$  /index.php?s=$1  last;
     break;
}

Nginx下wp伪静态第二种配置方式

1
2
3
location / {
    try_files $uri $uri/ /index.php?$args ;
}

完整配置参考:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
server {
        listen       80;
        server_name  niliu.me;
        root   /var/www/html/niliu;
        index  index.html index.htm index.php;
        location / {
            try_files $uri $uri/ /index.php?$args ;
        }
        # redirect server error pages to the static page /50x.html
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /var/www/html/niliu$fastcgi_script_name;
            include        fastcgi_params;
        }
    }

二、wordpress设置方法

检测主机是否支持伪静态的方法:在WP后台 > 设置 > 固定链接,设置为 默认带?的那种结构,然后访问任何一篇文章,如果出现 404 错误,说明你的主机当前不支持 WordPress 伪静态。

三、wordpress后台配置的哪种好?

没有在后台的 “设置->>固定链接” 中设置链接样式的话,就属于默认的固定连接样式,它的形式如下

http://riji.caojiawan.cn/?p=123

优点

  1. 链接短小
  2. 移植性好,当 WordPress 搬家时,新主机万一不支持 Rewrite 模块,你不需要进行301定向

缺点

  1. 缺乏语义性,对搜索引擎收录稍稍有影响,但是不大

日期、月份和名称链接样式

这是官方默认的链接样式,分日期、月份和名称两种,形式如下

http://riji.caojiawan.cn/2012/09/11/sample-post/
http://riji.caojiawan.cn/2012/09/sample-post/

优点

  1. 语义性增强,增加了文章发布时间和文章名称
  2. 文章发布时间和文章名称在链接中,有利于搜索引擎理解

缺点

  1. 生成的链接长度太长,不利于发送等
  2. 文章标题直接显示在连接中,有的时候并不希望这样

名称型链接样式

直接加一个文章名称,形式如下

http://riji.caojiawan.cn/sample-post/

优点

  1. 语义性强,文章名称在链接中,便于搜索引擎理解

缺点

  1. 生成链接长度过长,中文链接会被编码,链接乱且长

关键词类型链接样式

将文章中的关键词提取出来,然后自定义固定连接,用“-”链接关键词,很多高手博客使用这种链接,样式如下

http://riji.caojiawan.cn/m/limit-login-attempts/

优点

  1. 语义性强,便于搜索引擎理解
  2. 生成链接长度合适

缺点

  1. 需要博主有一定的英语水平和耐心
  2. 对中文博客的效果不大,几乎没有中国人会搜索一个英文单词来看你的中文文章

数字型链接样式

直接把文章的ID写在链接中,样式如下

http://riji.caojiawan.cn/123

优点

  1. 链接极短

缺点

  1. 没有任何语义性

数字型语义增强版链接样式

不仅仅是文章 ID 还增加一些英文单词,例如:post、archives等,形式如下

http://riji.caojiawan.cn/archives/123
http://riji.caojiawan.cn/post-1268.html

优点

  1. 链接较短
  2. 增加了关键词,便于搜索引擎理解这个页面是一篇文章

缺点

  1. 语义性不是非常明确

如何自定义博客固定链接

了解结构标签
WordPress 设置了一系列的固定链接结构标签,来让你定义固定链接,具体标签及功能如下

%year% 文章发表的年份,四位数,如 2004
%monthnum% 月份,如 05
%day% 天,如 28
%hour% 小时,如 15
%minute% 分钟,如 43
%second% 秒,如 33
%postname% 文章标题的别名 (编辑文章/页面时的别名栏)
%post_id% 文章的唯一ID,如 423
%category% 分类的别名 (新建/编辑分类时的别名栏)
%tag% 标签的别名(新建/编辑标签时的别名栏)
%author% 作者的别名

之后,我们需要打开后台 “固定链接设置” 页面,找到 “自定义链接结构” 根据自己的需求,写上链接结构,加上结构标签。例如潜行者m博客用的链接样式

http://riji.caojiawan.cn/yx-1268.html

在后台自定义链接结构时,需要定义成

/yx-%post_id%.html

其他注意事项

固定链接在 WordPress 博客中非常重要,强烈建议在建博初期就确定下来,而且之后不要再更换。如果你更换了固定链接,之前的固定链接打开之后,就会出现404错误,影响搜索引擎收录。

当然,如果你迫不得已更换博客的固定链接,请安装相应的 301链接重定向 插件,使用插件将之前的固定链接重定向到更新后的固定链接上。这类的插件比较多,这里推荐几个:Simple 301 Redirects、Redirection等。

关于 WordPress 固定链接更详细的说明,请看官方文档 :zh-cn:使用固定链接

发表评论

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