3

我正在寻找一个解决方案,我可以在单个 RewriteCond 语句中定义多个匹配语句,

场景是,如果 URL 中有任何此字符串,我想重定向到主页: /it/, /de/, /fr/

我试着这样写:

  1. 这是扔SERVER ERROR

    RewriteCond ^(/it/ | /de/ | /fr/ )
    RewriteRule 'myhomepageurl'
    
  2. 我也尝试过这种方式:

    RewriteCond /it/ [OR]
    RewriteCond /de/ [OR]
    RewriteCond /fr/ [OR]
    RewriteRule 'myhomepageurl'
    

这给了意想不到的结果页面无限加载并且管理员被阻止。所以我最终采取了这种方式:

RewriteCond /it/
RewriteRule 'myhomepageurl'

RewriteCond /de/
RewriteRule 'myhomepageurl'

RewriteCond /fr/
RewriteRule 'myhomepageurl'

我只是对可以一次性完成此操作的单个语句感到好奇。

谢谢

4

2 回答 2

7

您的第一个示例因空格而失败;一个更好的正则表达式就像

RewriteCond ^/(it|de|fr)/
RewriteRule 'myhomepageurl'

无论哪种方式,您都应该阅读When Not To Use Rewrite并使用其中建议的一种更简单的形式,例如

RedirectMatch /(it|de|fr)/ /myhomepageurl
于 2013-06-27T13:17:41.133 回答
3

尝试这个:

RewriteCond %{REQUEST_URI} /(en|de|it)/
RewriteRule .* myhomepageurl [R=301,L]
于 2013-06-27T13:15:03.433 回答