WordPress除首页外所有页面均出现404错误求助
WordPress部署到GCP后除首页外404问题的解决方法
1. 检查服务器Web服务配置
Apache环境
- 先确认
mod_rewrite模块已启用,执行命令:
启用后重启Apache:sudo a2enmod rewritesudo systemctl restart apache2 - 编辑虚拟主机配置文件(通常在
/etc/apache2/sites-available/目录下),找到对应站点的<Directory>段,将AllowOverride None改为AllowOverride All,确保.htaccess的重写规则能生效。修改后再次重启Apache。
Nginx环境
Nginx不支持.htaccess,需直接在站点的server配置块中添加重写规则:
location / { try_files $uri $uri/ /index.php?$args; }
添加后重启Nginx:
sudo systemctl restart nginx
2. 重置固定链接规则
登录WordPress后台,进入「设置」>「固定链接」:
- 先切换到「朴素」模式,点击「保存更改」;
- 再切换回你需要的固定链接格式(比如「文章名」),再次点击「保存更改」。
这一步会让WordPress重新生成路由规则,自动修复.htaccess(Apache环境)或同步内部路由映射。
3. 修正文件权限
- Apache环境下,确保.htaccess文件的所有者为web服务用户(通常是
www-data),权限设为644:sudo chown www-data:www-data /path/to/your/wordpress/.htaccess sudo chmod 644 /path/to/your/wordpress/.htaccess - Nginx环境下,确保WordPress根目录及子目录权限为755,文件权限为644,所有者设为
www-data:sudo chown -R www-data:www-data /path/to/your/wordpress/ sudo find /path/to/your/wordpress/ -type d -exec chmod 755 {} \; sudo find /path/to/your/wordpress/ -type f -exec chmod 644 {} \;
4. 修复表单链接失效问题
- 检查主题或自定义代码中的表单链接,确保使用WordPress内置函数生成URL,比如
get_permalink()、site_url(),避免硬编码URL。示例:// 正确写法 <form action="<?php echo get_permalink( get_page_by_path( 'contact' ) ); ?>" method="post"> - 若使用第三方表单插件(如Contact Form 7),更新插件到最新版本,然后重新保存表单设置,确保插件路由同步最新的固定链接规则。
内容的提问来源于stack exchange,提问作者Udayavani
相关产品推荐
相关产品推荐

