我正在寻找一个解决方案,我可以在单个RewriteCond语句中定义muliple匹配语句,
如果此字符串中的任何字符串包含在url中,则我想重定向到主页:
/it/, /de/, /fr/
我试着这样写:
这是投掷SERVER ERROR
:
RewriteCond ^(/it/ | /de/ | /fr/ )
RewriteRule 'myhomepageurl'
我也是这样试过的:
RewriteCond /it/ [OR]
RewriteCond /de/ [OR]
RewriteCond /fr/ [OR]
RewriteRule 'myhomepageurl'
这给了意想不到的结果页面loding无限且管理员被阻止了。所以我最终采用了这种方式:
RewriteCond /it/
RewriteRule 'myhomepageurl'
RewriteCond /de/
RewriteRule 'myhomepageurl'
RewriteCond /fr/
RewriteRule 'myhomepageurl'
我只是对单一声明可以做到这一点的单一声明感到好奇。
由于
答案 0 :(得分:6)
你的第一个例子因为空间而失败;一个更好的正则表达式就像是
RewriteCond ^/(it|de|fr)/
RewriteRule 'myhomepageurl'
无论哪种方式,你都应该阅读When Not To Use Rewrite并使用其中一种更简单的形式,例如
RedirectMatch /(it|de|fr)/ /myhomepageurl
答案 1 :(得分:3)
试试这个:
RewriteCond %{REQUEST_URI} /(en|de|it)/
RewriteRule .* myhomepageurl [R=301,L]