具有多个RewriteCond的Apache RewriteMap无法正常工作

时间:2018-07-17 12:07:28

标签: apache redirect mod-rewrite rewritemap

我正在使用一个RewriteMap和一个带有两个RedirectCond的规则(使用地图)

RewriteMap  lc int:tolower

RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(DE|FR|IT|)$ [NC]
RewriteCond %{HTTP:Accept-Language} ^(de|it|fr).*$ [NC]
RewriteRule ^/$ https://${DOMAIN}/${lc:%1}/${lc:%2}/home.html [L,R=302]

但是它不起作用。我应该使用${lc:%1}还是${lc:$1}吗?根据Apache文档,我们需要为$使用RewriteMap,为%使用RewriteCond

1 个答案:

答案 0 :(得分:0)

我想您有503内部错误。您应该设置

LogLevel alert rewrite:trace3

在您的虚拟主机配置中(但是只有在您具有写权限的情况下才可以)。 然后尝试在错误日志中查找出了什么问题。我不知道解决您问题的方法,但是这种方法是调试规则的好机会。在某些情况下,您可以使用this site测试规则。希望对您有所帮助。

是的,你是对的。 %代表RewriteCond,$代表RewriteRule