我想检查一个 URL 是否包含刺痛“-EN.htm”,如果是,则应用重写。
这应该使用 ^-EN.htm 来完成,如下所示,但该规则不起作用:
RewriteCond %{REQUEST_URI} ^/(.*?)/([-_0-9a-zA-Z./=]*)^-EN.htm
RewriteRule ^(.*)$ /indexEN.php?folder=%1&follow=%2 [L]
我究竟做错了什么?
谢谢你的每一个帮助,
斯科特
我想检查一个 URL 是否包含刺痛“-EN.htm”,如果是,则应用重写。
这应该使用 ^-EN.htm 来完成,如下所示,但该规则不起作用:
RewriteCond %{REQUEST_URI} ^/(.*?)/([-_0-9a-zA-Z./=]*)^-EN.htm
RewriteRule ^(.*)$ /indexEN.php?folder=%1&follow=%2 [L]
我究竟做错了什么?
谢谢你的每一个帮助,
斯科特
您的正则表达式看起来不正确。您也可以丢失条件,而只是将模式移动到重写规则。类似的东西
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]