我正在寻找一个解决方案,我可以在单个 RewriteCond 语句中定义多个匹配语句,
如果此字符串中的任何一个出现在 url 中,我想重定向到主页:/it/, /de/, /fr/
我试着这样写:
SERVER ERROR
:RewriteCond ^(/it/ | /de/ | /fr/ )
RewriteRule 'myhomepageurl'
RewriteCond /it/ [OR]
RewriteCond /de/ [OR]
RewriteCond /fr/ [OR]
RewriteRule 'myhomepageurl'
这导致意外的结果页面无限加载并且管理员被阻止。所以我最终采取了这种方式:
RewriteCond /it/
RewriteRule 'myhomepageurl'
RewriteCond /de/
RewriteRule 'myhomepageurl'
RewriteCond /fr/
RewriteRule 'myhomepageurl'
我只是对可以单次执行此操作的单个语句感到好奇。
谢谢
最佳答案
您的第一个示例因空格而失败;更好的正则表达式类似于
RewriteCond ^/(it|de|fr)/
RewriteRule 'myhomepageurl'
无论哪种方式,您都应该阅读 When Not To Use Rewrite 并使用那里建议的一种更简单的形式,例如
RedirectMatch /(it|de|fr)/ /myhomepageurl
关于.htaccess - htaccess 在 RewriteCond 中使用 OR 条件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17343769/