最近有好几个朋友在使用主题的时候出现页面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 ,然后直接保存就可以了。