为什么wordpress 做的网站会出现404
在 WordPress 后台设置了自定义固定链接后,前台页面无法显示,提示404 not found错误页面,但是原来默认的动态路径还是可以打开,这是为什么?

一般有两种原因,第一种是空间不支持伪静态;第二种是空间不支持网址出行中文。
我们一个问题一个问题排查,首先遇到第一种情况,我们看查看我们购买的空间是否支持伪静态,也可以咨询空间服务商,确认支持的话,可能就是网站没有对应的伪静态规则,我们添加上伪静态规则就可以。
以下是3种常见web环境的伪静态规则
Apache环境的wordpress伪静态规则
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
保存到.htacess文件,上传到网站根目录即可
Nginx环境的wordpress伪静态规则
第1种规则:
location /
{
try_files $uri $uri/ /index.php?$args;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
第2种规则:
rewrite ^.*/files/(.*)$ /wp-includes/ms-files.php?file=$1 last;
if (!-e $request_filename){
rewrite ^.+?(/wp-.*) $1 last;
rewrite ^.+?(/.*\.php)$ $1 last;
rewrite ^ /index.php last;
}
两者人选一个,就可以。
IIS环境中wordpress的伪静态规则
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="OrgPage" stopProcessing="true">
<match url="^(.*)$" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^(.*)$" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
如果添加上伪静态规则访问还出现404,可能是你的网址命名是中文了,空间不支持中文的话改成字母或数字就可以,图片的命名也要改成字母或数字才能正常访问。



