【问题标题】:Redirect visitors to the canonical URL for a page using IIS使用 IIS 将访问者重定向到页面的规范 URL
【发布时间】:2011-01-27 21:05:09
【问题描述】:

我想确保访问http://example.com/* 的任何人都会自动重定向到http://www.example.com/*。目前,IIS 允许使用任何一种 URL 形式,这意味着可以通过多个 URL 访问任何页面,这有许多缺点(SEO 等)。

有没有办法在 IIS(尤其是 IIS 6)中内置而无需设置像 this 这样的第三方重写引擎?杀蚊子好像火箭筒一样。

【问题讨论】:

    标签: iis


    【解决方案1】:

    简单的方法是删除“www.mysite.com”的 DNS 条目,因此唯一存在的 DNS 条目是“mysite.com”。

    或者,这里有一些重定向到规范 URI 的技术:

    基本上,您希望将非规范 URI 的 301 Moved Permanently 状态连同规范 URI 一起交回,以便用户代理可以加载它。

    【讨论】:

    • 好吧,“简单的方法”会损害用户体验,所以就这样了。用户不必记住要键入的内容。此外,标准做法是使用 www 子域作为规范的子域(尝试访问 google.com 等)。其他 3 种技术:第一种是完美的,但仅限 IIS7;第三个并不真正相关;但中间的一个描述了 IIS 6 和 7 的各种技术。结果似乎是,对于 IIS 6 上的静态页面(与 ASP.NET 页面相反),专有的第三方软件是必要的。
    【解决方案2】:

    我有另一个解决方案:

    <rule name="Canonical domain name" enabled="true" stopProcessing="true">
        <match url="(.*)" />
        <conditions>
            <add input="{HTTP_HOST}" negate="true" pattern="^www\.([.a-zA-Z0-9]+)$" />
        </conditions>
        <action type="Redirect" url="http://www.{HTTP_HOST}/{R:0}" appendQueryString="true" redirectType="Permanent" />
    </rule>
    

    【讨论】:

    • 这可以在 IIS 6 中使用吗?我认为一般的重写内容直到 IIS 7 才出现。
    猜你喜欢
    • 2011-08-16
    • 2018-03-07
    • 2012-12-10
    • 2020-05-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-13
    • 2021-06-13
    • 1970-01-01
    相关资源
    最近更新 更多