如何解决.htaccess规则不适用于奇怪的字符
由于某种原因,我无法理解,以下重写规则不起作用。如果我根据https://www.regextester.com/
将'字符设置在()之间,如果我使用https://htaccess.madewithlove.be/检查规则,则用于测试的URL(www.google.com/Articles/Rob'sRecommendations.html)不会触发规则。
RewriteRule ^/Articles/Rob(')sRecommendations.html /looking-for-something/ [L,NC,R=301]
有什么想法吗?
解决方法
您的重写规则中的斜杠似乎是导致此问题的原因。使用https://htaccess.madewithlove.be/使用以下.htaccess规则https://www.google.com/Articles/Rob'sRecommendations.html测试works。
RewriteRule ^/?Articles/Rob(')sRecommendations.html looking-for-something/ [L,NC,R=301]
在上述.htaccess规则中,原来的“ /”替换为“ /?”
使用原始斜杠进行测试也将appears to work完全删除,但是以下消息解释了为什么使用“ /?”更可取,更通用。
更多信息:
{REQUEST_URI}字符串以/字符开头。 Apache已更改 正则表达式引擎更改版本时,因此Apache版本1需要 Apache 2禁止使用斜杠!我们可以同时满足 通过使用表达式^ /?使前斜杠成为可选斜杠版本。 (?是零或前一个字符的元字符)。 现在我们有了:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。