对于我们的其中一个项目,我们正在对网站名称,徽标等进行重新标记。
因此,我们需要将所有用户从旧域redirect到新域。 使用IIS7,这非常简单。 我们只是创build一个新的网站,redirect到一个主机headered域的所有stream量到新的。
但是这失去了原来的目的地资源。
eg. Old Domain: www.OldDomain.com New Domain: www.NewDomain.com User: www.OldDomain.com/user/PureKrome -> 301 --> www.newDomain.com
注意它是如何进入新的域,但不是/ user / PureKrome?
我怎样才能做到这一点,所以它进入新的领域,并保持原来的资源要求? 我猜URL-ReWriter的IIS7可能有帮助?
另外,如果我想这样做会发生什么…
CurrentDomain 1: Domain.com CorrectDomain 1: www.Domain.com CurrentDomain 2: AnotherDomain.com CorrectDomain 2: www.AnotherDomain.com
是否有可能在同一个IIS网站? 所以任何到domain.com的URL都会301到www.domain.com
现在我正在做2 IIS网站,301硬编码(这仍然意味着我也失去了原始资源请求)。
帮帮我!
RuslanY的博客有一个伟大的职位 ,描述如何与IIS重写器做到这一点。
我会引用他的提示#3: –
很多时候你可能有一个IIS网站使用几个不同的主机名。 最常见的例子是,当一个网站可以通过http://www.yoursitename.com和通过http://yoursitename.com访问。 或者,也许最近您将域名从oldsitename.com更改为newsitename.com,并且希望您的访问者在为网站添加书签链接时使用新的域名。 一个非常简单的redirect规则会照顾到这一点:view plaincopy to clipboardprint?
<rule name="Canonical Host Name" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTP_HOST}" negate="true" pattern="^ruslany\.net$" /> </conditions> <action type="Redirect" url="http://ruslany.net/{R:1}" redirectType="Permanent" /> </rule>
要查看如何工作的示例尝试浏览到http://www.ruslany.net/2008/10/aspnet-postbacks-and-url-rewriting/ 。 您将在浏览器的地址栏中看到“www”已从域名中删除。
这是一个URL重写问题。
如果你在Apache上,你可以把规则放在.htaccess文件中。 IIS用户必须购买和安装(尽pipe有一个评估版本可让您为每个IIS实例运行一个站点)的ISAPIRewrite ISAPI模块,该模块将解释.htaccess文件。
其实你需要一个http模块。 您可以阅读http模块中的URL并保留path,只更改主机名称,如果它不同于新的域名或不以www开头。
让我知道如果你想要更多的细节或代码来做到这一点。