【问题标题】:How to write all domain name redirects in one line如何在一行中编写所有域名重定向
【发布时间】:2015-01-20 21:49:47
【问题描述】:

我认为应该可以将大多数域名重定向写在一行中, 你能告诉我你认为这是否正确吗?

RewriteCond %{HTTP_HOST} ^(www\.myexample\.fr|myexample\.fr|www\.myexample\.com|myexample\.com)$
RewriteRule ^(.*)$ http://www.my-example.com/$1 [L,R=301]

我无法测试,因为我无法承受网站崩溃的代价,即使是一分钟,太多人都在努力。

谢谢, 我迫不及待地想看你的cmets

【问题讨论】:

    标签: regex .htaccess mod-rewrite redirect


    【解决方案1】:

    你可以像这样简化条件

    RewriteCond %{HTTP_HOST} !=www.my-example.com
    RewriteRule ^(.*)$ http://www.my-example.com/$1 [L,R=301]
    

    即请求中的主机不是www.my-example.com,然后重定向到www.my-example.com

    【讨论】:

    • 感谢您正确解决问题而不是回答问题。否定匹配比单独匹配所有别名要好得多,别名应该只出现在ServerAlias 指令中,因此在条件之前进行预过滤。
    • 您好,谢谢您,如果有和没有带有 .fr 的 www +,拼写错误的“myexample.com”呢?
    • myexample.com 等拼写错误的域甚至无法访问您的服务器,因为您没有 DNS 指向您的 IP 以查找错误的主机名。并且这条规则有否定条件,即!=www.my-example.com,这意味着如果主机不是www.my-example.com,并且将涵盖所有情况。
    • 如果您对此有任何疑问,请告诉我。
    猜你喜欢
    • 2017-06-29
    • 1970-01-01
    • 2017-07-14
    • 2021-09-09
    • 2013-08-24
    • 1970-01-01
    • 1970-01-01
    • 2018-11-29
    • 1970-01-01
    相关资源
    最近更新 更多