最近有好几个朋友在使用主题的时候出现页面404,然后发工单问我是不是主题有问题啊?其实这跟主题无关,就是 WordPress 伪静态规则配置的问题。当然不同的环境下(IIS/Apache/Nginx)配置伪静态规则也是不同的,今天就细说一下WordPress 伪静态规则。

首先,如果你在 WordPress后台 > 设置 > 固定链接,设置为 非默认带?的那种链接结构,然后访问任何一篇文章/分类/自定义页面,如果出现 404 错误,说明你的主机当前不支持 WordPress 伪静态,需要你自行配置伪静态规则。WordPress 固定链接设置里,我个人建议的自定义结构是:/%post_id%.html ,当然你想用其他形式也是可以的。

IIS伪静态规则

IIS 环境是 Windows 主机的服务器环境,新建一个 txt 文件,将下面的代码添加到文件中,然后另存为 httpd.ini 文件,上传到 WordPress 站点的根目录即可。

[ISAPI_Rewrite]
# Defend your computer from some worm attacks
#RewriteRule .*(?:global.asa|default.ida|root.exe|..).* . [F,I,O]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
# Rules to ensure that normal content gets through
RewriteRule /software-files/(.*) /software-files/$1 [L]
RewriteRule /images/(.*) /images/$1 [L]
RewriteRule /sitemap.xml /sitemap.xml [L]
RewriteRule /favicon.ico /favicon.ico [L]
# For file-based wordpress content (i.e. theme), admin, etc.
RewriteRule /wp-(.*) /wp-$1 [L]
# For normal wordpress content, via 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 ,然后直接保存就可以了。

PS

另外,不推荐大家使用 Windows IIS 服务器安装 WordPress,效率比 Linux 低很多。主题客推荐使用 CentOS 系统,推荐服务器看这里–>主机推荐,安装 Nginx 环境,这里推荐大家可以使用宝塔服务器面板,一键全能部署及管理,简单方便,点我领取礼包