【问题标题】:301 redirect on IIS. Redirect non-www to wwwIIS 上的 301 重定向。将非 www 重定向到 www
【发布时间】:2013-12-13 02:51:06
【问题描述】:

我应该在 IIS 6 上将我的网站从非 www 重定向到 www。例如,如果我在 url 中输入 domain.com,它必须重定向到 www.domain.com 以进行 SEO 优化。

我按照视频“http://www.youtube.com/watch?v=PYxabNrIMQ4”创建了我的重写规则。我做了如下

<system.webServer>
<rewrite>
<rules>
<rule name="Redirect to www" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions>
<add input="{HTTP_HOST}" pattern="mydomain.com" />
</conditions>
<action type="Redirect" url="http://www.mydomain.com/{R:0}" />
</rule>
</rules>
</rewrite>

但它没有按预期工作。帮助我找到解决方案。

注意: 我的 Visual Studio 显示警告,例如“元素 'system.webServer' 具有无效的子元素 'rewrite'”。

我相信这不会造成任何问题。

【问题讨论】:

  • 我想说可能是因为视频的说明是针对 IIS 7.0 的(在视频中查看 1:52,您会看到“Internet Information Services 7”),他的说明中有一些内容这不适用于 IIS 6.0

标签: iis-6


【解决方案1】:

根据this video,您可以使用 IIS 管理器 UI 进行重定向。确保您有第二个非 WWW 版本的站点,与您的站点的 WWW 版本具有相同的“位置”;创建它时,请务必为“Host Header”字段指定您的非WWW域。

创建后,右键单击该站点并转到“属性”。如果您愿意,请禁用日志记录(可能不需要,因为无论如何您都会重定向),然后转到“主目录”选项卡。现在通过单击相应的“删除”按钮删除应用程序,因为它不用于重定向。接下来,选择“重定向到 URL”单选按钮,一定要选中“上面输入的确切 URL”和“此资源的永久重定向”。

最后,在“重定向到”字段中,输入完整的 WWW 网址 后跟 $S$Q(即http://www.example.com$S$Q)——$S$Q 很重要捕获客户端可能发送的任何路径和查询字符串,因此如果用户转到http://example.com/foo/bar.html,他们将被适当地重定向到http://www.example.com/foo/bar.html,而不仅仅是http://www.example.com/。点击 Apply 和 OK,你的重定向应该设置好了!

【讨论】:

    【解决方案2】:

    这行得通吗?记得在根 web.config 中添加

            <rules>
                <rule name="Redirect domain.com to www" patternSyntax="Wildcard" stopProcessing="true">
                    <match url="*" />
                    <conditions>
                        <add input="{HTTP_HOST}" pattern="domain.com" />
                    </conditions>
                    <action type="Redirect" url="http://www.domain.com/{R:0}" />
                </rule>
            </rules>
    

    【讨论】:

    • 这与 OP 发布的内容有何不同?
    猜你喜欢
    • 2018-05-01
    • 2016-10-14
    • 2013-05-06
    • 2017-05-03
    • 2019-12-13
    • 2018-10-19
    • 2010-11-27
    • 1970-01-01
    • 2014-04-09
    相关资源
    最近更新 更多