.htaccess - htaccess 在 RewriteCond 中使用 OR 条件

标签 .htaccess

我正在寻找一个解决方案,我可以在单个 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'

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

谢谢

最佳答案

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

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/

相关文章:

.htaccess - 将旧网站重定向到主域,但也将一些内容重定向到主域的子域

apache - 使用 mod_rewrite,如何强制路径和查询字符串全部小写?

.htaccess - 如何在没有 JS 的情况下获取在浏览器中看到的整个 URL?

php - htaccess 重写规则请求 URI 问题

apache - 如何使用 htaccess 重写 url 并保持相关链接正常工作

php - .htaccess,双重重定向评估 uri

.htaccess 或符号链接(symbolic link) (symlink)

.htaccess - 将根(且仅根)URL 重定向到另一个域?

php - 一些 SEO 工具告诉我该网站正在重定向到一个奇怪的 url

php - 漂亮的 URL 条件重写