WordPress 伪静态设置:你真的做对了吗?
近期有多位朋友在使用我们的 Verdure 主题时遇到了一个问题,即在安装完主题后,前端页面出现 404 错误提示。他们随后私信询问我是否是主题存在问题。实际上,这个问题与主题并无关联,而是与 WordPress 的固定链接形式以及伪静态规则的配置有关。目前,许多作者开发的主题都要求采用特定的 WordPress 固定链接形式,因此,这实际上是一个 WordPress 伪静态规则配置的问题。不同的服务器环境(IIS/Apache/Nginx)下,配置伪静态规则也有所不同。下面将详细介绍如何正确配置 WordPress 伪静态规则。
首先,如果您在 WordPress 后台的“设置”>“固定链接”中设置了非默认的链接结构,并且访问任何一篇文章、分类或自定义页面时出现 404 错误,那么说明您的主机当前不支持 WordPress 伪静态,您需要自行配置伪静态规则。在 WordPress 固定链接设置中,我个人建议的自定义结构为:
/%post_id%.html ,当然您也可以选择其他形式。
IIS 伪静态规则
首先,我不建议大家在 Windows 主机上安装 WordPress,因为其效率比 Linux 低很多。但如果您执意如此,IIS 环境是 Windows 主机的服务器环境,您可以新建一个 txt 文件,将下面的代码添加到文件中,然后将其另存为 httpd.ini 文件,并上传到 WordPress 站点的根目录即可。
[ISAPI_Rewrite]
抵御某些蠕虫攻击
RewriteRule.(?:global.asa|default.ida|root.exe|..).. [F,I,O]
3600 = 1 小时
CacheClockRate
3600
RepeatLimit
32
保护 httpd.ini 和 httpd.parse.errors 文件
防止通过 HTTP 访问
确保正常内容能够通过
RewriteRule
/software-files/(.) /software-files/$1 [L]
RewriteRule
/images/(.) /images/$1 [L]
RewriteRule
/sitemap.xml /sitemap.xml [L]
RewriteRule
/favicon.ico /favicon.ico [L]
针对基于文件的 WordPress 内容(如主题、管理员等)
RewriteRule
/wp-(.) /wp-$1 [L]
针对正常的 WordPress 内容,通过 index.php
RewriteRule
^/$ /index.php [L]
RewriteRule
/(.) /index.php/$1 [L]
Apache 伪静态规则
Apache 是 Linux 主机下的环境,您可以新建一个 htaccess.txt 文件,添加下面的代码,然后上传到 WordPress 站点的根目录,并将其重命名为.htaccess。
<IfModule mod_rewrite.c>
RewriteEngine
On
RewriteBase /
RewriteRule ^index.php$ -
[L]
RewriteCond
%{REQUEST_FILENAME}!-f
RewriteCond
%{REQUEST_FILENAME}!-d
RewriteRule. /index.php
[L]
</IfModule>
Nginx 伪静态规则
Nginx 环境通常在 Linux 主机 VPS 或 ECS 服务器上使用,这些用户通常会自行配置 Nginx。打开 nginx.conf 或某个站点的配置环境,例如 themeke.com.conf(不同人配置的不一样),在 server { } 大括号内部添加下面的代码,保存并重启 Nginx 即可。
location / {
try_files
$uri
$uri/ /index.php?
$args;
}
rewrite /wp-admin$
$scheme://
$host
$uri/
permanent;
如果您的主机使用的是宝塔,那么设置起来会相对简单一些。进入宝塔界面,选择“网站”>“设置(需要配置的网站)”>“伪静态”,从下拉菜单中选择“wordpress”,然后直接保存即可。
