mod_rewrite - 检查字符串

时间:2012-11-01 16:21:39

标签: string mod-rewrite rule

我想检查URL是否包含刺痛“-EN.htm”,如果是,则应用重写。

这应该用^ -EN.htm完成,如下所示,但规则不起作用:

 RewriteCond %{REQUEST_URI} ^/(.*?)/([-_0-9a-zA-Z./=]*)^-EN.htm
 RewriteRule ^(.*)$ /indexEN.php?folder=%1&follow=%2 [L]

我做错了什么?

感谢您的帮助,

斯科特

1 个答案:

答案 0 :(得分:0)

你的正则表达式看起来不正确。您也可以丢失条件,只需将模式移动到重写规则。

的内容
RewriteRule ^/?(.*?)/([-_0-9a-zA-Z./=]*)^-EN.htm /indexEN.php?folder=$1&follow=$2 [L]

你需要使前导斜杠可选(在htaccess中被删除)而不是使用反向引用,使用 $

现在你的模式,它是无效的。 ^匹配字符串的开头(URI),因此,如果您有两个并且您没有尝试字面匹配^字符(您需要转义),然后表达式永远不会匹配任何东西。如果没有您需要处理的任何URL示例,我假设您可能只想放弃第二个^

RewriteRule ^/?(.*?)/([-_0-9a-zA-Z./=]*)-EN.htm /indexEN.php?folder=$1&follow=$2 [L]