修改httpd.conf后WordPress固定链接仍无法正常工作求助
解决AWS EC2 Linux AMI上WordPress固定链接404问题
已经改了AllowOverride All还没解决?别着急,EC2 Linux AMI环境下还有几个常见的关键点需要排查,我帮你一步步梳理:
启用Apache的mod_rewrite模块
WordPress的美观固定链接完全依赖mod_rewrite模块,而EC2 Linux AMI默认可能没开启这个模块。执行下面的命令启用并重启服务:sudo a2enmod rewrite sudo systemctl restart httpd确保.htaccess文件存在且权限正确
WordPress需要通过.htaccess写入重写规则,要是这个文件缺失或者权限不对,规则根本无法生效:- 先检查WordPress根目录(一般是
/var/www/html)有没有这个文件:ls -la /var/www/html/ - 如果没有,手动创建并设置正确的权限(让Apache能读写):
sudo touch /var/www/html/.htaccess sudo chown apache:apache /var/www/html/.htaccess sudo chmod 644 /var/www/html/.htaccess - 回到WordPress后台,重新保存固定链接设置(选择
/%postname%),让系统自动写入对应的重写规则。
- 先检查WordPress根目录(一般是
确认httpd.conf的修改完全生效
你改了AllowOverride All,得确保是在对应目录的配置块里,比如:<Directory "/var/www/html"> AllowOverride All # 其他原有配置... </Directory>修改完成后一定要重启Apache,不然配置不会生效:
sudo systemctl restart httpd排查SELinux的限制
EC2 Linux AMI默认开启SELinux,它经常会悄悄阻止Apache读取.htaccess或执行重写规则:- 先临时关闭SELinux测试:
测试下固定链接是否正常,如果正常,说明问题出在SELinux上。sudo setenforce 0 - 别直接永久关闭SELinux,而是设置正确的上下文规则:
之后重启Apache就可以了。sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/.htaccess" sudo restorecon -v /var/www/html/.htaccess
- 先临时关闭SELinux测试:
检查虚拟主机配置(如果使用了)
如果你配置了虚拟主机,要确保虚拟主机的<Directory>块里也设置了AllowOverride All,不能只修改全局的httpd.conf。
按这些步骤逐一检查,应该就能解决404问题,去掉URL里的index.php了。
内容的提问来源于stack exchange,提问作者sotn
相关产品推荐
相关产品推荐

