【问题标题】:htaccess redirecting multiple domains, https and http, www and non-www, all to one https domainhtaccess 将多个域,https 和 http,www 和非 www,全部重定向到一个 https 域
【发布时间】:2017-11-03 00:50:09
【问题描述】:

我有三个不同的域,我想确保所有域都重定向到一个域。

我想确保涵盖所有情况:如果用户键入 http 或 https,它们是否包含 www。

这创造了 12 种不同的可能性...

http://www.domain1.co.uk
https://www.domain1.co.uk
http://domain1.co.uk
https://domain1.co.uk

http://www.domain2.uk
https://www.domain2.uk
http://domain2.uk
https://domain2.uk

http://www.domain3.co.uk
https://www.domain3.co.uk
http://domain3.co.uk
https://domain3.co.uk

我需要将所有这些重定向到:

https://www.domain3.co.uk

我以我认为应该适用于大多数变体的方式设置了我的 .htaccess 文件,并且我在 Google 和 SO 上对此进行了研究,这在我看来是最好的解决方案:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.domain3\.co.uk$ [NC]
RewriteRule ^ https://www.domain3.co.uk%{REQUEST_URI} [R=301,L]

但这仅涵盖其中 11 种变体。

有了这个 htaccess 文件,如果我访问 URL:

http://www.domain3.co.uk

它不会重定向。

所有其他变体根据需要重定向。

如何更改我的 htaccess 文件以涵盖所有 12 种可能的变体?

【问题讨论】:

    标签: apache .htaccess redirect mod-rewrite


    【解决方案1】:

    您可以将这条规则与[OR] 子句一起使用:

    RewriteEngine On
    
    RewriteCond %{HTTPS} off [OR]
    RewriteCond %{HTTP_HOST} !^www\.domain3\.co.uk$ [NC]
    RewriteRule ^ https://www.domain3.co.uk%{REQUEST_URI} [R=301,L,NE]
    

    【讨论】:

    • @anubhava domain3 是目标而不是 doamin2。无论如何,你可以在这个真实的例子上试试。 vibratape.de 是主域。如果你尝试vibratape.com 它不起作用。
    • 其实我打错了。它应该是domain3。但正如您所看到的,如果您来自不同的域,规则是直接重定向到www.domain3.co.uk。话虽如此,如果由于您的本地配置/代码问题而对您不起作用,那么您可以发布一个包含所有详细信息的新问题,以便我查看它。
    • @anubhava 谢谢...这是stackoverflow.com/questions/55757719/…的帖子
    猜你喜欢
    • 2021-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-16
    • 2015-05-19
    相关资源
    最近更新 更多