微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mod_rewrite 不能与 RewriteEngine on before 语句一起使用

如何解决mod_rewrite 不能与 RewriteEngine on before 语句一起使用

我继承了一个具有以下 .htaccess RewriteRules 的 Web 应用程序

Options FollowSymLinks
RewriteRule .* - [E=CAMPAIGN_MODE:live]

RewriteEngine on
RewriteCond "%{ENV:CAMPAIGN_MODE}" "^live"
RewriteRule ^r/([A-Za-z]{2})/([A-Za-z0-9_]+)$   ?action=saveReferral&code=$2&lang=$1
RewriteRule ^crossfit(/.*)?$    /?lang=cf [R=301,L,QSA]
RewriteRule ^classic(/.*)?$     /?lang=en [R=301,QSA]
RewriteCond "%{ENV:CAMPAIGN_MODE}" "^offline"
RewriteCond %{REQUEST_URI} !^/admin/
RewriteCond %{REQUEST_URI} !^/dashboard/
RewriteCond %{REQUEST_URI} !^/includes/
RewriteCond %{REQUEST_URI} !^/images/
RewriteCond %{REQUEST_URI} !^/styles/
RewriteRule ^(.*)$ https://www.somewebsite.com/en-gb/ [R=301]

一个 RewriteRule 旨在将所有请求重写到 index.PHP 文件,但自然不应将请求重写到磁盘上的文件

上面的 .htaccess 按预期工作 - 直到我将 RewriteEngine 移到所有语句的前面。然后,每个请求都被重写到 index.PHP,甚至包括到磁盘上的文件

我的问题是:为什么上面的 .htaccess 完全适用于该位置的 RewriteEngine 语句?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。