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

Apache服务器.htaccess重定向配置问题求助

解决.htaccess RewriteRule跳转目标不符的问题

先理清楚你的核心问题:当前Rewrite规则把非文件/目录的请求导向了http://example.com/test.html,但你实际想要的是指向本地项目http://localhost/project/test。下面一步步帮你排查和修正:

1. 修正.htaccess的规则目标路径

你当前的规则是:

RewriteRule ^(.*)$ test.html [QSA,L]

这里的test.html是相对路径,Apache会基于你设置的RewriteBase /解析成服务器根目录下的文件。如果你的服务器默认域名被设为example.com(比如XAMPP默认配置没调整),就会跳转到http://example.com/test.html。

你需要把目标改成项目对应的绝对路径,比如你的项目在localhost/project下,规则应调整为:

RewriteRule ^(.*)$ /project/test [QSA,L]

注意路径前的斜杠,确保是基于服务器根目录的绝对路径,避免相对路径解析出错。

2. 验证httpd.conf的关键配置

XAMPP的httpd.conf文件里有几个必须检查的点:

  • 启用mod_rewrite模块:确认存在LoadModule rewrite_module modules/mod_rewrite.so这一行,并且前面没有注释符号#。
  • 允许.htaccess生效:找到你项目目录对应的<Directory>块(比如C:\xampp\htdocs\project),把AllowOverride None改成AllowOverride All,这样Apache才会读取执行.htaccess里的规则。
  • 确认DocumentRoot:检查DocumentRoot是否指向C:\xampp\htdocs,如果你的项目在htdocs/project下,这个配置是正确的。

3. 排查hosts文件的干扰

打开C:\Windows\System32\drivers\etc\hosts文件,看看有没有把localhost映射到example.com的配置,比如:

127.0.0.1 example.com

如果有这行,会导致本地请求被解析到example.com,直接删掉这一行,保存后执行命令ipconfig /flushdns刷新DNS缓存。

4. 小技巧:测试规则有效性

可以先在.htaccess里加一条测试规则:

RewriteRule ^test$ /project/test [R=302,L]

然后访问http://localhost/test,看是否跳转到http://localhost/project/test。如果成功,说明Rewrite模块和.htaccess已经生效,再调整回原来的规则即可。

最后别忘了,修改完任何配置后重启XAMPP的Apache服务,否则新配置不会生效哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:07:12