在 IIS 7 中重定向网站的最佳方法

发布于 2024-11-19 20:49:43 字数 239 浏览 2 评论 0原文

确保在 IIS 7 中托管的网站上访问的所有页面都使用 www 进行重定向的最佳方法是什么?子域...示例如下:

http://site.com ==> http://www.site.com

http://site.com/somepage.html ==> http://www.site.com/somepage.html

What is the best way to make sure all pages hit on a website hosting in IIS 7 are redirecting with the www. sub-domain...examples below:

http://site.com ==> http://www.site.com

or

http://site.com/somepage.html ==> http://www.site.com/somepage.html

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

走过海棠暮 2024-11-26 20:49:43

此规则会将所有对 http://site.com/somepage.html 的请求重定向(301 永久重定向)到 http://www.site.com/somepage.html > (如果域名 = site.com 则有效):

<system.webServer>
    <rewrite>
        <rules>
            <rule name="Force www" stopProcessing="true">
                <match url="(.*)" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="^site\.com$" />
                </conditions>
                <action type="Redirect" url="http://www.site.com/{R:1}" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

此域名将执行相同的操作,但会从任何子域重定向到 www(例如 hello.site.com => www.site .com):

<system.webServer>
    <rewrite>
        <rules>
            <rule name="Force www" stopProcessing="true">
                <match url="(.*)" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="^www\.site\.com$" negate="true" />
                </conditions>
                <action type="Redirect" url="http://www.site.com/{R:1}" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

注意:

  1. 您需要存在 URL 重写 v2 模块(也应该与 v1.x 一起使用,但我无法测试它 - 只能使用 v2)。

  2. (显然)您的网站应该接受那些非 www 子域。

  3. 此规则需要放置在网站 root 文件夹中的 web.config 中。

This rule will redirect (301 Permanent Redirect) all requests to http://site.com/somepage.html into http://www.site.com/somepage.html (will work if domain name = site.com):

<system.webServer>
    <rewrite>
        <rules>
            <rule name="Force www" stopProcessing="true">
                <match url="(.*)" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="^site\.com$" />
                </conditions>
                <action type="Redirect" url="http://www.site.com/{R:1}" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

This one will do the same but will redirect from ANY SUBDOMAIN to www (e.g. hello.site.com => www.site.com):

<system.webServer>
    <rewrite>
        <rules>
            <rule name="Force www" stopProcessing="true">
                <match url="(.*)" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="^www\.site\.com$" negate="true" />
                </conditions>
                <action type="Redirect" url="http://www.site.com/{R:1}" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

NOTES:

  1. You will need URL Rewrite v2 module to be present (should work with v1.x as well, but I cannot test it -- only v2 around).

  2. (Obviously) your site should accept those non-www subdomains.

  3. This rule need to be placed in web.config in website root folder.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文