IIS7& 301重定向 - 文件夹到文件

时间:2009-10-17 17:57:24

标签: asp.net .net-3.5 iis-7 http-status-code-301

我们正在使用IIS7和ASP.NET 3.5。

我们已使用新页面更新了我们的网站。现在,互联网上有许多链接指向我们的网站,但由于我们新网站的目录结构发生了变化,许多链接现在已经被破坏。

我需要有多个请求,301重定向到“新页面”。许多旧页面只是目录URL,例如:

/服务/ softwaredevelopment

/产品/ geographicdata

/网站导航

/公司/ termsofuse

我在Global.asax文件中编写了一些代码来捕获url,解析它们并重定向它们。但是,当没有文件引用(.aspx)时,我的ASP.NET应用程序不会捕获URL。

然后,似乎需要在IIS7中创建这些重定向。

现在,上面的URL位于目录级别(它们不直接请求实际的.aspx页面)...我可以使用虚拟目录将“目录”请求重定向到另一个“目录”....但是我无法将目录请求重定向到实际的.aspx文件

以下是我需要做的一些重定向类型:

==========

旧:/ services / softwaredevelopment

重定向到:/services/custom-software-development.aspx

============

旧:/ sitemap

重定向到:/ sitemap.aspx

============

旧:/ company / termsofuse

重定向到:/company/termsofuse.aspx

=============

旧:/ company / careers

重定向到:/company/careers.aspx

=============

旧:/ services /

重定向到:/services/custom-software-development.aspx

=============

有人能说明如何实现这一目标吗?请让我知道,如果你有任何问题。非常感谢你的帮助。

2 个答案:

答案 0 :(得分:1)

一个快速而又脏的选项是在您列出的文件夹中创建default.aspx重定向页面。例如,要处理/ services / softwaredevelopment,请在/services/softwaredevelopment/default.aspx中创建一个文件default.aspx,其中包含以下内容:

<%@ Page Language="C#" Inherits="System.Web.UI.Page" %>

<% Response.Redirect("/services/custom-software-development.aspx"); %>

这个解决方案只有在只有少量重定向的情况下才有用,因为它会使代码文件变得非常简单。针对大量重定向的更好解决方案是使用IIS 7的 native URL rewriter

答案 1 :(得分:0)

查看“Windows Server 2008上IIS 7中的HTTP重定向”http://www.trainsignaltraining.com/iis7-redirect-windows-server-2008

您应该能够通过配置IIS而不是编码来执行大多数重定向。

相关问题