WP网站伪静态错误排查:新手也能解决的5个步骤
为什么你的WP页面全部404了?
很多新手买了好一点的服务器、装了WordPress,兴致勃勃打开网站,却发现所有文章页都是404,连后台都进不去。这就是典型的伪静态规则没有生效。 伪静态的作用是把动态的URL(比如?)转成好看的静态链接(比如
p=123/article/123/),如果没有正确配置,服务器就不知道怎么找文件,直接返回404。
本文会从零开始,带你一步步排查并修复WP的伪静态错误,全程不需要懂编程,只要会复制粘贴命令。
第一步:确认你的Web服务器软件
先把服务器登录进去(Xshell、FinalShell或者宝塔面板的“终端”)。
然后输入下面命令,看看你用的是Apache还是Nginx:
nginx -v 2>/dev/null || httpd -v 2>/dev/null || echo "未知"
如果返回类似nginx version: nginx/1.24.0,就是Nginx;
如果返回Server version: Apache/2.4.57,就是Apache。记下结果,接下来的操作根据它来选。
第二步:检查重写模块是否加载
如果你用的是宝塔面板
登录宝塔后台 → 点击左侧“软件商店” → 找到当前使用的Web服务器(Apache/Nginx) → 点击“设置” → 如果是Apache,切换到“配置管理”,找到“LoadModule rewrite_module”这一行,确保前面没有#;
如果是Nginx,在“性能调整”里确保有include enable-php-*.conf;相关的配置即可。
如果你用的是命令行
Apache用户:执行以下命令查看是否加载了rewrite模块:
apachectl -M | grep rewrite
如果没有任何输出,说明没加载。
需要编辑主配置文件(一般在/etc/httpd/conf/httpd.conf或/etc/apache2/apache2.conf),找到#LoadModule rewrite_module modules/mod_rewrite.so,把前面的#删掉,保存。
然后重启Apache:
systemctl restart httpd # CentOS
systemctl restart apache2 # Ubuntu/Debian
Nginx用户:Nginx默认不支持.htaccess,但可以通过配置里写规则实现伪静态。
宝塔面板已经自动帮你加好了,你只需要确认一下。
打开站点设置 → “伪静态” → 选择“wordpress”。
如果已经选了,但仍然404,往下看第三步。
第三步:检查并修复伪静态配置文件
Apache环境
伪静态规则写在网站根目录的.htaccess文件里。
进到网站目录(比如/www/wwwroot/你的域名),先看看这个文件存不存在:
ls -la .htaccess
如果不存在,手动创建一个,并把下面代码粘贴进去:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
如果文件已存在但内容不对,先备份再替换:
cp .htaccess .htaccess.bak
Nginx环境
在宝塔面板里,进入站点设置 → “配置文件”,找到location ~ \.php$之前的location /块。
确保里面有类似这样的规则:
try_files $uri $uri/ /index.php?$args;
如果没有,手动添加。
保存设置后重启Nginx:
systemctl restart nginx
第四步:重置WordPress固定链接
登录WP后台(如果连后台都进不了,先去数据库改,后面说)。
如果因为伪静态错误导致后台也404,可以临时用?参数方式访问:在浏览器地址栏输入你的域名/wp-admin/,如果还是不行,需要跳过这一步,直接看第五步。
能进后台的话,点击“设置”→“固定链接”,随便选一个其他格式(比如“朴素”),保存;
然后再切换回你想要的格式(比如“文章名”),再保存一次。这个操作会刷新伪静态缓存并重新生成.htaccess文件。 通常能立即生效。
第五步:紧急情况下通过数据库修复固定链接
如果连后台都404,得直接修改数据库来重置固定链接。
使用宝塔的“phpMyAdmin”或命令行登录MySQL:
mysql -u root -p
然后执行(注意替换库名和表前缀):
USE 你的数据库名;
UPDATE wp_options SET option_value='' WHERE option_name='permalink_structure';
退出数据库后,再访问网站后台,此时固定链接被重置为“朴素”模式,后台就能进了。
然后再按第四步重新设置一次。
常见问题与避坑指南
Q:按照上面做了,还是404?
A:检查一下站点根目录是否有index.php文件,很多搬家时漏了。如果没有,从官方包解压一份放进去。
Q:宝塔面板里已经选了WordPress伪静态,为什么还是不行?
A:有时候需要把“伪静态”开关关掉再重新打开一次,并重启Nginx。另外检查“网站目录”的权限,确保www用户有读取权限。
Q:重启服务器后伪静态又失效了?
A:检查系统时间是否正确,或者htaccess文件是否被其他安全软件阻止生成。建议把.htaccess权限设为644。
效果验证
打开浏览器,访问网站的一个文章页(比如你的域名/hello-world/)。
如果正常显示了内容,说明伪静态生效了。
如果还是404,回到第二步仔细检查模块是否为LoadModule前面少了#。
最后说一句: 如果你正在处理WP网站伪静态错误排查,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。
99%的新手问题都能在这五个步骤里解决。