2009-10-17 73 views
0

我们使用IIS7和ASP.NET 3.5。IIS7&301重定向 - 文件夹到文件

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

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

/服务/ softwaredevelopment

/产品/ geographicdata

/网站导航

/公司/ termsofuse

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

看来,这些重定向需要在IIS7中创建。

现在,网址,上面有在目录级别(他们没有直接请求实际的.aspx页面)......我可以通过使用虚拟目录重定向“目录”请求到另一个“目录” ....但我不能一个目录的请求重定向到一个实际的.aspx文件

这里有一些类型的重定向我需要做:

==========

老:/services/softwaredevelopment

重定向到:/ services/cust OM-软件development.aspx

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

旧:/网站地图

重定向到:/sitemap.aspx

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

旧:/公司/ termsofuse

重定向到:/company/termsofuse.aspx

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

旧:/公司/事业

重定向到:/company/careers.aspx

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

旧:/服务/

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

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

有人可以解释一下如何做到这一点?请让我知道,如果你有任何问题。非常感谢您的帮助。

回答

1

一个快速和肮脏的方法是创建的Default.aspx重定向你已经列出的文件夹页。例如,处理/服务/ 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