You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改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写入重写规则,要是这个文件缺失或者权限不对,规则根本无法生效:

    1. 先检查WordPress根目录(一般是/var/www/html)有没有这个文件:
      ls -la /var/www/html/
      
    2. 如果没有,手动创建并设置正确的权限(让Apache能读写):
      sudo touch /var/www/html/.htaccess
      sudo chown apache:apache /var/www/html/.htaccess
      sudo chmod 644 /var/www/html/.htaccess
      
    3. 回到WordPress后台,重新保存固定链接设置(选择/%postname%),让系统自动写入对应的重写规则。
  • 确认httpd.conf的修改完全生效
    你改了AllowOverride All,得确保是在对应目录的配置块里,比如:

    <Directory "/var/www/html">
        AllowOverride All
        # 其他原有配置...
    </Directory>
    

    修改完成后一定要重启Apache,不然配置不会生效:

    sudo systemctl restart httpd
    
  • 排查SELinux的限制
    EC2 Linux AMI默认开启SELinux,它经常会悄悄阻止Apache读取.htaccess或执行重写规则:

    1. 先临时关闭SELinux测试:
      sudo setenforce 0
      
      测试下固定链接是否正常,如果正常,说明问题出在SELinux上。
    2. 别直接永久关闭SELinux,而是设置正确的上下文规则:
      sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/.htaccess"
      sudo restorecon -v /var/www/html/.htaccess
      
      之后重启Apache就可以了。
  • 检查虚拟主机配置(如果使用了)
    如果你配置了虚拟主机,要确保虚拟主机的<Directory>块里也设置了AllowOverride All,不能只修改全局的httpd.conf。

按这些步骤逐一检查,应该就能解决404问题,去掉URL里的index.php了。

内容的提问来源于stack exchange,提问作者sotn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:07:38