0

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

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

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

我究竟做错了什么?

谢谢你的每一个帮助,

斯科特

4

1 回答 1

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]
于 2012-11-02T10:53:58.340 回答