IIS从特定的过期URL重定向?

时间:2010-10-28 17:53:52

标签: .net asp.net iis iis-7 redirect

我的一位客户将人们引荐到某个网址。她在实际字母上打印URL,收件人有几周时间访问URL并完成任务。假设她提供的URL是:

www.department-a.domain.com/folder/important-page.html

问题是我正在切换内容管理系统,因此她将人们链接到的页面将位于不同的URL。但是,由于她在字母上实际打印了URL,因此需要有一些重叠,以便人们可以访问旧的URL并重定向。

这是它变得棘手的地方。在新系统中,www.department-a.domain.com的子域名实际上转发到www.domain.com/index/department-a.aspx

哪个不是文件夹而是实际页面 - 这会使重定向变得棘手。这也意味着我不能简单地重新创建文件夹结构并使用简单的HTML Meta刷新/重定向。基本上我的问题是:

在IIS中是否有告诉服务器当有人试图查看“www.department-a.domain.com/folder/important-page.html”的特定且不再存在的URL以将其重定向到另一个时地点?我是.net和IIS的新手,因此非常感谢任何输入或链接或提示。

编辑 - 对不起,我正在使用IIS7,而不是像我之前所说的那样使用IIS6。

谢谢!

3 个答案:

答案 0 :(得分:2)

查看URL重写。

如果使用IIS 7:Here

答案 1 :(得分:1)

上个月我是.NET的新手,需要这个完全相同的解决方案。每个人都建议使用网址重写插件,例如 bechbd ,但我只想转发单个网址。肯定有办法吗?事实证明,没有 - 因为IIS 6非常愚蠢。

相反,您需要将代码放在实际页面中(或者如果执行多个URL,则安装插件)。

.ASP

<%@ Language=VBScript %>
<%
' Permanent redirection
Response.Status = "301 Moved Permanently"
Response.AddHeader "Location", "http://www.example.com/"
Response.End
%>

.ASPX

<script language="VB" runat="server">
  Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
    Response.Status = "301 Moved Permanently"
    Response.AppendHeader("Location", "http://www.example.com/")
  End Sub
</script>

我上个月刚刚实现了这个代码,并且所有搜索引擎都根据301s正确地改变了它们的索引。我在网络上找到了这个代码的 LOT 变体,但上面的代码在我的特定库存IIS 6上运行得很好。

答案 2 :(得分:0)

重写Url是正确的飞行方式。在紧张或卡在IIS6上,您可以创建任何虚拟目录。包括似乎是文件名的内容。任何虚拟目录都可以是服务器端重定向。

要解决部门子域问题,关键问题是“是否会在这些网址上运行?”如果没有,那么只需设置一个站点来重定向整个事物。