如何在web.config中将非www http重定向到https-www



我想将以下所有类型的请求重定向到https://www.example.com

http://example.com
http://www.example.com
https://example.com

这取决于您想要如何重定向。你可以。。。

  1. 从客户端重定向。这很容易做到,只需在包含以下内容的页面HTML文档的<head>中添加一个脚本标记即可。

    let excluded = ['http://www.example.com', 'https://example.com', 'http://example.com']
    if (excluded.indexOf(location.origin) !== -1) {
    location.href = 'https://www.example.com'
    }
    

    这个代码只有一个问题,就是浏览器可能会抱怨重定向太多。第二种选择更安全。

  2. 如果你知道如何使用.htaccess。您将在web服务器的根目录中找到此文件。添加以下行:

    RewriteEngine On
    RewriteCond %{HTTPS} !on
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
    

    (查看此问题了解更多信息。(

  3. 如果页面不是严格静态的,您可以从后端重定向。有很多方法可以做到这一点,最有可能的是只使用一个npm模块,如forcedomain(我个人最喜欢的(,在发出请求时重定向,而不是在加载页面时重定向。这样效率更高,浏览器也不会对你发脾气。

  4. 使用多个CNAME记录。如果你不熟悉DNS,我会忽略这部分答案。基本上,制作一个CNAME,其中主机为@,值为www。这将把所有请求发送到顶点域(example.com(,并将它们重定向到子域(www.example.com(。当涉及到协议问题时,有几种方法可以做到这一点,最好的选择是通配符重定向(如果您的注册商提供(。

根据一般经验,最好使用DNS记录、.htaccess文件或某种后端插件(如果可能的话(进行重定向(如果你知道怎么做的话(。这一切都取决于你的主机,你的网站的性质(静态或动态(,以及你对这类事情的知识水平。

建议使用Firebase Hosting:https://firebase.google.com/docs/hosting/quickstart

相关内容

最新更新