IIS 7.5 的 301 重定向以仅替换域并维护页面结构

Posted

技术标签:

【中文标题】IIS 7.5 的 301 重定向以仅替换域并维护页面结构【英文标题】:301 redirect for IIS 7.5 to replace domain only and maintain page structure 【发布时间】:2016-02-04 01:20:53 【问题描述】:

我进行了广泛的搜索,但无法为我的问题找到一个确凿的答案...

我的旧域名 = www.olddomain.com 我的新域名 = www.newdomain.com

这是唯一改变的事情,我在网站上有很多其他页面和互联网上的一些链接,我想 301 重定向并且不会受到 SEO 搜索引擎的惩罚。

我有一个 Windows 2008 R2 IIS 7.5,所以不能使用 .htaccess 文件(我之前成功使用过很多次)并且需要传输:

www.olddomain.com/folder/page.html 到 www.newdomain.com/folder/page.html

请有人帮助我为我的整个网站的 web.config 正确的 URL 重写模式,而不仅仅是单个页面?

谢谢

【问题讨论】:

【参考方案1】:

您可以轻松地使用来自:http://www.iis.net/downloads/microsoft/url-rewrite 的 URL 重写

即使在 UI 中,它也包含一个“规范域”的默认模板,可以做到这一点:

<rule name="CanonicalHostNameRule1">
    <match url="(.*)" />
    <conditions>
        <add input="HTTP_HOST" pattern="^www\.newdomain\.com$" negate="true" />
    </conditions>
    <action type="Redirect" url="http://www.newdomain.com/R:1" />
</rule>

【讨论】:

嗨 Carlos,感谢您的回复,这不是我遇到的规范域问题,它是 2 个独立的域。例如 www.foo.com 到 www.bar.com 你有针对不同域的解决方案吗?谢谢 除非我遗漏了同样的问题,基本上这条规则将重定向到 www.newdomain.com 任何未发送到它的内容,同时尊重 URL(也就是连接 URL 和请求参数)。除非我弄错了,否则这就是您所说的。请注意,如果您想专门匹配 www.olddomain.com,请将条件更改为:pattern="^www\.olddomain\.com$" /> 不应该的,你把上面的括号复制到了比赛中吗? R:1 将确保它将正则表达式捕获的所有数据添加到匹配项中,即整个 URL,因此它应该保留它。 这是我的规则........ newdomain.co.ukR:1" /> 您的规则是“如果不是 olddomain.co.uk,则重定向到 newdomin.co.uk”。那是你试图做的吗?它以为你想要。您还从我打破它的规则中删除了 http 和斜杠。这就是我认为你想要的(同上): newdomain.co.ukR:1" />

以上是关于IIS 7.5 的 301 重定向以仅替换域并维护页面结构的主要内容,如果未能解决你的问题,请参考以下文章

301 使用 .htaccess 重定向到新域并编辑一些特定链接

IIS6 301重定向和IIS7 301重定向

Win2008 r2 iis7/iis7.5系统下HTTP重定向(301重定向)图文方法

301 重定向正则表达式模式

从 HTTP 重定向到 HTTPS - IIS 7.5

301 使用 IIS 重定向到具有命名锚点的 URL