2012-11-01 74 views
0

我想检查一个URL是否包含sting“-EN.htm”,如果是的话应用重写。mod_rewrite - 检查字符串

应与^ -EN.htm如下完成,但该规则不工作:

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

我在做什么错?

谢谢你的每一个帮助,

斯科特

回答

0

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

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

线的东西你需要做的前导斜杠可选(htaccess的这个被剥离)和而不是使用反向引用,使用$的。

现在到你的模式,它是无效的。 ^与字符串(URI)的开头相匹配,所以如果你有两个字符串,并且你没有试图从字面上匹配^字符(你需要转义),那么表达式永远不会匹配任何东西。没有任何你不得不处理的网址的例子,我想你可能只想排第二个^

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