在asp.net上重定向网站

时间:2010-07-12 13:41:29

标签: asp.net html iis redirect

我有一个由.asp文件和很多静态.html

组成的网站

我想重定向所有

www.example.old / abc.html

www.example.old / xyz.html

www.example.new/abc.html

www.exaple.new/xyz.html

如果我在Apache上,我会使用.htaccess,但我怎么能在ASP,ASP.NET服务器上这样做? (我无权访问IIS管理器)

.NET Fw:3.5 操作系统:Windows 2003 IIS:6.0

3 个答案:

答案 0 :(得分:3)

在web.config文件中尝试:

<rule name="Redirect Rule" stopProcessing="true"> 
<match url=".*/(.*)" />
<action type="Redirect" url="www.example.new/{R:1}" redirectType="Permanent" /> 
</rule>

答案 1 :(得分:1)

您可以使用global.asax

执行此操作

如果这是永久重定向,那么您将需要使用301重定向而不是302来允许搜索引擎抓取工具更新其链接。

Response.Clear();
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","http://www.example.new/abc.html");
Response.End();

编辑: 如果页面是html而不是由ASP.NET ISAPI过滤器处理,则无法执行此操作,您可以通过IIS管理器进行配置,但是您说明了无法访问。

对于ASP,您可以使用global.asax - global.asa

的前身

对于HTML,您可能会遇到meta refresh

答案 2 :(得分:0)

如果您使用的是经典ASP ...在您的global.asa文件中......您可以添加将.asp文件的所有请求重定向到新网站的代码。

如果您使用的是ASP.NET,则可以在global.asax文件中添加代码,重定向用户的Session_Start方法。

对于你的html页面,因为它们不是由ASP和ASP.NET引擎运行的,所以你必须将它们全部替换为一个空白的html页面,该页面只有一个元刷新标记到新的域&amp;页。

如果您有权访问IIS,则可以更改它使用的404.htm文件。添加元刷新标记,以便所有其他请求也发送到您的网站。