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

Windows下XAMPP中.htaccess报RewriteEngine not allowed here错误求助

解决WordPress固定链接改文章名称后500错误(RewriteEngine not allowed here)

核心问题定位

报错RewriteEngine not allowed here本质是Apache服务器没授权当前目录使用.htaccess里的Rewrite指令,哪怕你改了全局的AllowOverride All,也可能存在局部配置覆盖或者配置没生效的情况。

针对性排查步骤

1. 检查Apache虚拟主机配置

Windows下的Apache如果用了虚拟主机(httpd-vhosts.conf),得确保对应站点的<Directory>块里设置了AllowOverride All,不能只改httpd.conf的全局配置。示例:

<VirtualHost *:80>
    DocumentRoot "C:/xampp/htdocs/your-wordpress-site"
    ServerName your-local-domain.test
    <Directory "C:/xampp/htdocs/your-wordpress-site">
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

改完必须重启Apache服务,不然配置不生效。

2. 确认.htaccess文件权限(Windows环境)

Windows下Apache运行的用户(一般是SYSTEM或你当前登录的用户)需要对.htaccess文件有读取权限:

  • 右键.htaccess文件 → 属性 → 安全 → 编辑 → 添加Apache运行用户,赋予读取权限。
  • 别给文件设只读属性,不然Apache读不了。

3. 验证mod_rewrite是否真的加载

在WordPress根目录新建phpinfo.php文件,内容:

<?php phpinfo(); ?>

访问这个页面,搜索mod_rewrite,能找到说明模块已加载;找不到的话,检查httpd.conf里的LoadModule rewrite_module modules/mod_rewrite.so是否真的取消注释,还要确认Apache路径是否正确(比如XAMPP是modules/mod_rewrite.so,WAMP可能是bin/apache/apacheX.X.X/modules/mod_rewrite.so)。

4. 重置WordPress的.htaccess内容

先备份当前.htaccess文件,然后替换成WordPress默认的固定链接规则:

# 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

确保文件开头没有多余空格或特殊字符,保存后再测试。

5. 检查Apache是否加载了httpd-vhosts.conf

如果用了虚拟主机,得确认httpd.conf里有没有这条配置(通常在文件末尾):

Include conf/extra/httpd-vhosts.conf

要是注释状态,取消注释后重启Apache。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 22:05:55