Mamp Pro 4.4.1+Apache2.4.28下.htaccess的<If>命令无效求助
Hey Johnny,
这个问题我之前帮朋友排查过,其实根源就是MAMP Pro默认的Apache配置里,要么没启用支持<If>表达式的必要模块,要么相关配置项没打开——毕竟MAMP为了兼容更多旧项目,默认配置有时候会限制一些新特性。
给你几个具体的排查和解决步骤:
检查并启用必要模块:
打开MAMP Pro,选中左侧的Apache服务,点击「Template」按钮编辑httpd.conf配置文件。- 查找
LoadModule rewrite_module modules/mod_rewrite.so,如果前面有#注释,把注释去掉(这是支持req()表达式的核心模块); - 再找
LoadModule version_module modules/mod_version.so,同样确保没有被注释(虽然<If>本身不需要,但某些表达式场景依赖它)。
- 查找
确认目录权限配置:
在同一个httpd.conf里,找到你对应网站的<Directory>配置块(通常在文件末尾,或者虚拟主机配置里),确保里面的AllowOverride设置为All——这个选项控制.htaccess里能使用哪些指令,设为All就能解锁所有合法指令。开启Rewrite引擎:
进入MAMP Pro的网站管理界面,找到你要配置的站点,切换到「Advanced」标签,确保「Enable Rewrite Engine」选项是勾选状态。
做完这些后,重启MAMP Pro的Apache服务,再测试你的.htaccess应该就能正常工作了。
如果还是有问题,你可以用Apache 2.2/2.4通用的重写规则替代<If>语句,效果完全一样:
RewriteEngine On RewriteCond %{HTTP_HOST} !^www\.wooga\.com$ [NC] RewriteRule ^(.*)$ http://www.wooga.com/$1 [R=301,L]
内容的提问来源于stack exchange,提问作者Johnny Slack
相关产品推荐
相关产品推荐

