解决 WP迁移后出现的404错误

large_parts_wordpress

项目迁移 WordPress 后仅首页正常,其它页面全部 404。
时隔一年,再度遇到这问题,总结和梳理一下。

1、想办法登录后台,刷新一次“设置”中的“固定链接”
比如换成默认后保存,再设回原先设置并保存,理论上就可以解决绝大多数人的问题了。

2、检查 Apache 的 rewrite mod 是否开启

LoadModule rewrite_module modules/mod_rewrite.so

3、检查 Apache 的对应目录 Allowoverride 是否设为 All
(这次就在这里栽跟头了,子目录覆盖了主目录设置)

<Directory "/var/www/html/test">
    AllowOverride All
</Directory>

4、检查 WordPress 主目录下是否有正确设置的 .htaccess 文件。(重点检查!)
默认设置如下,特别注意迁移后可能的目录更改。

# 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

如果网页服务器不是 Apache,而是 Nginx
则需要在网站设置中增加以下代码。

location / {
    try_files $uri $uri/ /index.php?$args; }

5、检查 WordPress 整个目录是否为 755 权限(文件 644 权限)。
(Window 系统下大概不用管后两条)

find /path/to/wordpress/ -type d -exec chmod 755 {} \; find /path/to/wordpress/ -type f -exec chmod 644 {} \; chown -R apache:apache /path/to/wordpress/

修改所有者为 apache 以应对缓存/上传/更新等问题。
用户名因人而异,还可能是 www/daemon 等。
(还要注意检查后台“多媒体-默认上传路径”)

6、如果配置的是虚拟主机那么记得在配置文件中加入开启伪静态的功能

<VirtualHost *:80>
DocumentRoot D:/www
ServerName localhost

RewriteEngine on
#规则放在下面即可

</VirtualHost>

可以对每个虚拟主机做单独的URL Rewrite
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值