WP 02 – 优化WordPress的固定链接 – Nginx重写URL

WP 02 – 优化WordPress的固定链接 – Nginx重写URL

1 为何要优化固定链接

博客的URL, 对SEO(搜索引擎优化)的影响很大, 由于种种原因, 动态资源的权重很低.

而WordPress中的默认固定链接是这样的: www.healchow.com/?p=95, 里面的问号直接告诉搜索引擎, 我这篇文章里有需要动态加载的资源, 地址参数随时可变, 而博客却还是同一篇.

—— 这对SEO很不友好, 搜索引擎会对这种网址降权处理, 导致不好搜索到此文章.

更多的细节, 可参考: WordPress的固定链接如何设置? – 魔笛手的回答 – 知乎

2 优化思路及步骤

2.1 WordPress支持的固定链接

形式 示例 含义 是否需要服务器支持URL_Rewrite
/%post_id%.html /95.html 以博客id为主, 带html结尾的伪静态 需要
/%postname% /build-blog 以博客别名为主的伪静态 需要
/%year%/%monthnum% /%post_id%.html /2019/02/95.html 以博客发布的年-月-博客id为主, 形成的伪静态 需要

关于伪静态:

伪静态的页面后缀可以是html、htm等格式, 它只是改变了URL的表现形式, 页面实际上还是动态页面, 类似于JSP、ASP类的页面, 需要根据Get/Post中的请求参数, 显示特定的内容;

静态页面可以节省服务器资源, 就像txt文本文件, 没有任何特殊的格式, 直接加载即可;

而伪静态页面仍然是动态页面, 需要动态地渲染一些效果, 而且还要服务器开启URL重写支持 —— 略微增加了服务器的压力.

SEO的优秀实践中有这样一条: 资源最好在3级目录以内即可访问, 即网站根目录后的斜线 / 不要超过3级, 在本站中我设置为了 自定义结构: https://healchow.com/articles/%post_id%.html.

2.2 配置后访问出现404错误

自定义固定链接后, 访问博客文章时出现404错误.

原因: 一般都是服务器没有开启URL_Rewrite的支持导致的, 所以需要在服务器中修改相关设置, 或者找你的主机服务商寻求帮助.

说明:

我用的是阿里云的ECS服务器搭建的WordPress站点, 可以自行修改服务器的相关配置;

建站时Web服务器使用了Nginx, 所以Apache环境下的修改只供参考, 具体实用与否请君自测之.

2.3 Nginx开启Url Rewrite – 亲测可用

Nginx只需要修改其配置文件 /etc/nginx/nginx.conf, 在Server中添加Rewrite规则, 然后重启Nginx服务即可.

URL Rewrite的工作思路:

① 访问地址 https://healchow.com/articles/95.html;

② Nginx接收到请求后, 自动映射到https://healchow.com/?p=95;
③ 搜索引擎看到的是一个静态页面地址, 就不会对它进行降权, 而该页面文件实际上并不存, 这就是所谓的“伪静态”.

具体的重写规则参考: http://codex.wordpress.org/Nginx, 以及 Nginx中文文档-HttpRewrite模块 .

2.3.1 配置方式一

/etc/nginx/nginx.conf文件中的Server下配置如下信息:

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

2.3.2 配置方式二

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;
    }
}

2.3.3 重启Nginx服务

修改完后, 重新加载配置文件, 并重启Nginx服务:

[root@onepiece ~]# vim /etc/nginx/nginx.conf
[root@onepiece ~]# service nginx reload     
Redirecting to /bin/systemctl reload nginx.service
[root@onepiece ~]# service nginx restart    
Redirecting to /bin/systemctl restart nginx.service

404错误应该不会再出现了, 赶紧试试吧:)

2.4 Apache开启Url Rewrite – 未测试

1) 开启apache的url_rewrite模块, 也就是在httpd.conf中注释掉这句话: LoadModule rewrite_module modules/mod_rewrite.so;

2) 找到AllowOverride, 把AllowOverride None修改为 AllowOverride all;

3) 在所需要进行rewrite的Web的主目录下添加.htaccess文件, 添加内容: RewriteEngine on.

3 优化WordPress固定链接的建议

1) 固定链接最好是在建站时就定好;

2) 如果后期变更固定链接一定要做好301跳转, 可以通过选择Redirection插件来解决;

关于301跳转, 参考配置如下:

 server {
    listen               80;
        server_name      healchow.com www.healchow.com;
        # 配置301重定向到https, 否则通过http仍能访问资源
        return 301       https://healchow.com$request_uri;
 }

3) 固定链接本身并不能达到很科学的SEO效果, 各种方式的区别不大.

至此, 成功解决WordPress修改固定链接后的404问题.

参考资料

WordPress固定链接设置完全指南及出现404的解决办法

Nginx下wordpress伪静态的两种配置方式

(全文完)

微信公众号
微信关注《马瘦风的南墙》 在移动端阅读文章

(感谢阅读, 转载请注明作者和出处 马瘦风的南墙 , 请勿用于任何商业用途)

——=== 访问 本站404页面 寻找遗失儿童 ===——

发表评论

你的个人信息不会被公开, 注意:标记为 * 的项必填。