2009-11-29 80 views
0

好的,我需要知道如何做重定向(在哪里放置代码或指定设置)。移动应用后,我们将从一个应用重定向到另一个应用。如何301重定向

因此,举例来说,如果用户去existing.example.com/archive/

我们想重定向包含old.example.comnew.example.com任何请求。网址中的其他内容保持不变。因此,例如/archive/是,所以我们会想他们重定向到这个应用程序是new.example.com/archive/

我需要弄清楚如何检查,看看是否传入的URL,以我们现有的网站有existing.example.com的新位置的一个例子,如果是这样,只用新的new.example.com替换该部分,并保留网址中的其余内容

我知道你可以在IIS 7中或通过编程方式执行此操作。我想我无法理解在任何情况下如何做到这一点。我安装IIS7重写插件,那么好吧,但这里是我不明白:

模式:

的redirectUrl:

我怎么看不到该接口我能够匹配existing.example.com然后什么放在RedirectURL,因为我想把整个URL只有existing.example.com更改为new.example.com为REdirectURL ...我不知道我怎么会这样做在IIS 7中。

+0

http://www.rfc-editor.org/rfc/rfc2606.txt – 2009-11-29 20:04:29

回答

0

在您网站的global.asax.cs文件中,您可以按如下方式从BeginRequest重定向。您可以编写例程,根据需要用正则表达式或string.replace()或您喜欢的任何方式替换域名。

protected void Application_BeginRequest(Object sender, EventArgs e){ 
    ...parse urls... 
    Response.Redirect(myNewPath) 
} 
+0

这将只通过ASP.NET – 2009-11-29 20:25:53

+0

真约翰处理的请求工作,这取决于如何设置它们可能必须改变一些处理程序来完成这项工作。 – 2009-11-29 23:52:38

+0

-1。对不起,Response.Redirect()会执行302 Found,而不是OP中所要求的301。 – RickNZ 2009-11-30 00:46:23

0

对于asp.net应用程序,我有很好的经验与urlrewriting.net,一个免费的组件,你可以在你的web.config配置重定向。它允许您输入正则表达式并用反向引用指定新的URL,例如像这样(未经):

<add name="newdomain" virtualUrl="^http\://old.example.com/(.*)$" 
    rewriteUrlParameter="ExcludeFromClientQueryString" 
    destinationUrl="http://new.example.com/$1" 
    redirect="Domain" 
    redirectMode="Permanent" 
    ignoreCase="true" /> 

缺点是:需要进行配置,为每一个ASP.NET应用程序(你可能需要通过asp.net重新配置IIS路由的一切,或者它可能只工作了。 aspx文件)。如果你想重定向你的完整的域,你可能最好在IIS级而不是在应用级上这样做。然而,你可能会得到更好的帮助,这是系统管理员所在的地方...

2

你不需要任何复杂的重写的东西做这样一个微不足道的重定向,这是一个基本的Web服务器功能。在IIS7中,您现在可以选择不安装它(从万维网服务 - >通用HTTP功能 - > HTTP重定向),但这样做很不寻常。

在IIS管理器中编辑主要网站的'绑定',以便它只响应'主机名:'new.example.com,然后创建一个绑定到主机名old.example.com的新网站。对于此网站,点击'HTTP重定向'选项并将'重定向到此目的地的请求:'http://new.example.com/'状态码:'301。

在XML配置方面:

<system.webServer> 
    <httpRedirect enabled="true" destination="http://new.example.com/" httpResponseStatus="Permanent" /> 
</system.webServer> 
+0

因此,如果传入的网址(例如http://existing.com/archives)进来,它会重定向到http://new.example.com/archives,将剩下的网址留在第一次/之后的机智/ ?? – PositiveGuy 2009-11-30 16:06:55

+0

是的,只要您不勾选“将所有请求重定向到准确位置”的选项即可。这里有一个很好的演练:http://www.trainsignaltraining.com/windows-server-2008-http-redirection/2008-03-27/ – bobince 2009-11-30 16:20:04