【问题标题】:deploy web site on IIS 7 with and without www prefix在带有和不带有 www 前缀的 IIS 7 上部署网站
【发布时间】:2023-04-06 06:15:01
【问题描述】:

我想在带有 www 且不带 www 前缀的 IIS 7 上部署网站。我需要在 IIS 中创建两个网站吗?例如www.something.com 和 something.com 或者是否有另一种选择,我怎样才能只在 IIS 中使用一个网站。

谢谢

【问题讨论】:

    标签: iis


    【解决方案1】:

    创建 1 个网站并添加 2 个主机绑定。使用inetmgr,当您单击网站时,绑定应该在右侧。您将添加两个具有相同 IP 和不同主机名“www.host.com”和“host.com”的绑定。您还需要确保您的 DNS 服务器的两个主机条目都指向您的网站 IP。

    【讨论】:

    • 为了在 IIS 中配置重定向,我推荐以下链接:dotnetexpertguide.com/2011/08/iis-7-redirect-domaincom-to.html
    • 但是对于端口 443 (https) 无法做到这一点。我希望有人能发布一个解决方法,但我不得不说,在这些事情上,nginx 比 iis 优越得多......
    • @aag - 许多域都有一个通配符 SSL 证书,它们将其用作包罗万象的内容,它将(HTTP STATUS 301)重定向到 WWW 站点(该站点将拥有自己的证书。一个例如google.om -> 301 -> google.com。在 IIS 中设置一个只执行重定向的存根站点很容易,但必须使用多个 IP 地址可能会很痛苦。使用 IIS 8 SNI(服务器名称指示) 已实现,您可以将多个 SSL 证书绑定到相同的 IP 和端口。
    【解决方案2】:

    www 前缀只是一个 DNS 记录,通常用作 A 记录或 CNAME 记录。 A 记录将导致 DNS 查找使用直接指定的 IP 地址。 CNAME(规范名称)将导致 DNS 查询重新开始,使用指定为规范名称的值。

    例如:

    www.something.com A 65.42.3.152
    

    ... 将 DNS 查询直接解析为 IP 地址。

    www.something.com CNAME something.com
    something.com A 65.42.3.152
    

    ... 将导致 DNS 查询以 something.com 作为参数重新开始。

    您需要将两者都添加为您网站的绑定,因为 IIS 将尝试解析主机标头值以匹配网站。

    显然,如果您同时添加 www 和非 www 版本,则在抓取网站时确实存在重复内容的风险。您可以通过多种方式解决此问题,您可以使用 URL 重写(和 301 响应代码)重定向到其中一种(例如,将 www.something.com 重定向到 something.com),或者您可以指定规范标签:

    <link rel="canonical" href="http://something.com" />
    

    ...等。将非 www 作为网站主地址的缺点是任何 cookie 都将用于 something.com 域,这意味着如果您打算使用任何其他子域(例如 CDN,也许是 static.something .com)您还将为 anything.something.com 的所有请求传输 cookie。

    【讨论】:

    • 谢谢马修,你的回答也对。我已经标记了第一个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-30
    • 2012-11-06
    • 2015-07-03
    • 2015-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多