使用WordPress建站的朋友,应该都比较习惯设置固定链接来实现伪静态地址访问,这样使整个站点的URL地址更为简单美观。但是经常会在设置固定链接后,访问会出现直接404错误找不到页面提示,那就是你的主机不支持WordPress伪静态规则。WordPress是目前使用最为广泛的博客程序,简单直观的操作,强大的第三方插件,可以让任何零基础的朋友搭建自己的个人站点。万维景盛打造的省心免维护的安心主机和舒心主机就完美支持wordpress伪静态。
WordPress遇到设置固定链接自定义结构时出现404错误,解决办法很简单,只需在主机添加WordPress伪静态规则即可。当然不同的环境下,添加的方法是不一样的。我们常用的环境一般是Nginx/Apache/IIS三种,下面就详细介绍Nginx/Apache/IIS环境下如何配置WordPress伪静态规则。
一、Nginx环境下添加WordPress伪静态规则:
Nginx环境下添加WordPress伪静态规则只需在站点“www.xxx.com.conf”文件中的server { } 中添加下面代码即可。
location / {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 (.*) /index.php;}}
二、Apache环境下添加WordPress伪静态规则:
Apache环境下方法比较简单,一般虚拟主机使用的就是此环境。我们只需在网站根目录下的.htaccess文件中添加下面代码即可。如果站点根目录没有此文件,那么就自己新建一个记事本,把下面内容复制到记事本,然后另存为.htaccess文件再上传到站点根目录即可。
# BEGIN WordPress<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteRule ^index\.php$ – [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]</IfModule># END WordPress
三、IIS环境下添加WordPress伪静态规则
也有些朋友在Windows系统中搭建WordPress站点,但一般比较少,如果习惯使用Windows系统的朋友遇到确实伪静态规则的情况,可以使用下的规则脚本。自己新建一个记事本,把下面内容复制到记事本,保存为web.config,然后丢到网站根目录下,且需要检查服务器是否安装IIS URL Rewrite模块,如果没有则还需要去安装。
<?xml version="1.0" encoding="UTF-8"?><configuration><system.webServer><rewrite><rules><rule name="category"><match url="category/?(.*)" /><conditions logicalGrouping="MatchAll" trackAllCaptures="false" /><action type="Rewrite" url="/index.php?category_name={R:1}" appendQueryString="false" logRewrittenUrl="false" /></rule><rule name="tags"><match url="tag/?(.*)" /><conditions logicalGrouping="MatchAll" trackAllCaptures="false" /><action type="Rewrite" url="index.php?tag={R:1}" /></rule><rule name="Main Rule" stopProcessing="true"><match url=".*" /><conditions logicalGrouping="MatchAll" trackAllCaptures="false"><add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /><add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /></conditions><action type="Rewrite" url="index.php/{R:0}" /></rule><rule name="wordpress" patternSyntax="Wildcard"><match url="*" /><conditions logicalGrouping="MatchAll" trackAllCaptures="false"><add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /><add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /></conditions><action type="Rewrite" url="index.php" /></rule></rules></rewrite></system.webServer></configuration>