最近有好几个朋友在使用我们的verdure主题的时候遇到安装完主题后,前端页面出现404错误提示,然后发私信问我是不是主题有问题啊?那么,这个问题呢其实跟主题是没有关系的,目前很多作者开发的主题都要求wordpress的固定链接形式,所以其实就是 wordpress 伪静态规则配置的问题。当然不同的服务器环境下(iis/apache/nginx)配置伪静态规则也是不同的,今天就细说一下如何正确的配置 wordpress 伪静态规则。

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

iis伪静态规则

首先,我是不建议大家安装wordpress使用 windows 主机的,效率比 linux 低很多。那么如果你非要用也是可以的,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 hourcacheclockrate 3600repeatlimit 32# protect httpd.ini and httpd.parse.errors files# from accessing through http# rules to ensure that normal content gets throughrewriterule /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.phprewriterule ^/$ /index.php [l]rewriterule /(.*) /index.php/$1 [l]

apache伪静态规则

apache是 linux 主机下的环境,新建一个 htaccess.txt 文件,添加下面的代码,然后上传到 wordpress 站点的根目录,重命名为 .htaccess 即可。

<ifmodule mod_rewrite.c>rewriteengine onrewritebase /rewriterule ^index.php$ - [l]rewritecond %{request_filename} !-frewritecond %{request_filename} !-drewriterule . /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 ,然后直接保存就可以了。