新手在使用 WordPress 搭建好一个网站后,会涉及到一个 WordPress 固定链接,又叫做 WordPress 伪静态的设置。
WordPress 固定链接分为朴素、日期和名称型、 月份和名称型、数字型、文章名和自定义结构,那么使用哪种固定方式才是 WordPress 最佳固定链接设置呢?
WordPress 最佳固定链接设置选项
WordPress 最佳固定连接可以选择数字型和文章名两种,如果你是最求细节的人,愿意每篇文章都修改文章名,那么推荐选择文章名,不然的话就直接选择数字型吧。
另外,如果你是一个喜欢更个性的固定链接方式的人,也可以选择自定义格式。
就像下图这样:
例如选择自定义结构,然后尾部加上 .html (如果你需要安装开源版的 WordPress 小程序,那么你需要加上 .HTML 才能做到小程序文章内的链接跳转功能)那么本文的网址就会变成:
https://www.yephy.com/分类名/文章名.html
你现在看到的铭创网络的固定链接格式选择的就是数字型,例如这篇“WordPress 最佳固定链接设置,选择哪种伪静态规则比较好”的链接是:
https://www.yephy.com/1367.html
注意:选择文章名的形式对 SEO 有好处,不过需要你为每篇文章设置一个文章名,这个文章名最好是修改为英文或者拼音形式的,如果不做修改,那么网址就会直接变成你网址 + 中文标题的形式,很长而且很难看,例如这样:
当然,你可以自由组合,可用标签有下面这些,分别对应的意思如下:
%year%
年
%monthnum%
月
%day%
日
%hour%
时
%minute%
分
%second%
秒
%post_id%
文章 ID(自动生成的)
%postname%
文章名(需要自己修改,不修改就使用文章标题)
%category%
分类名
%author%
作者
后面的.html
你可以自己随便写,例如写成.love
这些任何你想的都可以的。
WordPress 固定链接后 404
当你设置完毕 WordPress 固定链接设置后,访问网站首页没有问题,但是访问文章页面会报 404 错误打不开的话,就是因为你服务器的伪静态规则没有设置好。
伪静态规则设置
目前赢聚网推荐常用的环境是宝塔面板或者 Oneinstack 一键包这些,对应的固定链接伪静态规则如下:
宝塔面板伪静态规则设置
宝塔面板的话,进入宝塔面板后台,然后在你网站的设置里面,选择伪静态,然后选择 wordperss 保存即可。
Oneinstack 一键包伪静态设置规则
Oneinstack 一键包的话,设置伪静态规则可以在添加虚拟主机的时候就设置好,具体位置在添加虚拟主机的时候,询问是否使用伪静态,输入 y,然后输入 WordPress 即可。
如果你是已经添加好了网站,发现忘记添加伪静态规则了,有两种方法解决:
~/oneinstack/vhost.sh --del
删除添加的虚拟主机配置文件,然后~/oneinstack/vhost.sh
重新添加。- 配置虚拟主机的
.conf
文件,把伪静态规则加进去:
include /usr/local/nginx/conf/rewrite/wordpress.conf;
自己编译的 Nginx 配置伪静态
如果你不是使用的一键包或者宝塔安装的网站环境,而是自己编译的 nginx ,那么自己在虚拟主机配置信息里面加上下面这段内容,然后重启 nginx 就可以了。
location / { try_files $uri $uri/ /index.php?$args; } rewrite /wp-admin$ $scheme://$host$uri/ permanent;
Nginx 二级目录伪静态规则
把下面的 blog 改成你二级目录的名字添加到虚拟主机配置文件里面即可。
location /blog/ { 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 (.*) /blog/index.php; } } rewrite /blog/wp-admin$ $scheme://$host$uri/ permanent;
Apache WordPress 伪静态规则
在网站根目录的 .htaccess
文件里面插入下面的代码即可在 Apache 下开启 WordPress 伪静态规则。
<ifmodule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </ifmodule>
注意事项
特别要提醒的是,从网站 SEO 的长远考虑,一开始就确定好固定链接设置哪一种,当网站正式上线运营后,不要轻易修改固定链接的形式,不然可能会造成网站排名消失等 SEO 不利因素。