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

Apache 2.4.54环境下.htaccess中的Rewrite规则不生效问题排查求助

Apache 2.4.54环境下.htaccess中的Rewrite规则不生效问题排查求助

大家好,我最近碰到个棘手的问题,想请各位帮忙排查下。我在/path/to/project/目录下配置了如下的.htaccess文件:

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !system
RewriteRule ^(.*)/([^/]+)/?$ $1/some/folders/$2.php [PT]
</IfModule>

我的目标是把https://example.com/path/to/project/folder的请求,重写转发到https://example.com/path/to/project/some/folders/folder.php。

我知道这类问题已经被讨论过无数次了,但哪怕是写个最基础的RewriteRule ^ /不带任何条件,在当前环境里都完全不起作用。

我已经确认了mod_rewrite模块是启用状态——我在<IfModule>块里加了Header set测试语句,是可以正常生效的。

同时也检查了对应目录的Apache配置,已经设置了AllowOverride All:

<Directory ${APACHE_ROOT_DIR}/path/to/project>
AllowOverride All
</Directory>

我实在是绞尽脑汁也找不到问题所在,希望有经验的朋友能给我点思路。


更新1:

我在另一台服务器上测试了完全相同的重写规则和文件结构,居然能正常工作!这说明问题大概率出在当前服务器的mod_rewrite本身,或者是虚拟主机(VirtualHost)相关的配置上。

更新2:

我把这段重写规则放到sites-available/default-ssl.conf里后,居然生效了,但放在.htaccess里还是不行。这就很奇怪了——.htaccess里的Header set test test是能正常运行的,mod_rewrite在主配置文件里也能工作,偏偏两者结合起来就失效了...

备注:内容来源于stack exchange,提问作者Play_it

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 14:23:11