我们正在使用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
=============
有人能说明如何实现这一目标吗?请让我知道,如果你有任何问题。非常感谢你的帮助。
添
答案 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而不是编码来执行大多数重定向。