【问题标题】:IIS7 & 301 Redirects - Folder to FileIIS7 和 301 重定向 - 文件夹到文件
【发布时间】:2010-12-07 15:45:54
【问题描述】:

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

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

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

/服务/软件开发

/产品/地理数据

/站点地图

/公司/termsofuse

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

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

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

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

===========

旧:/services/softwaredevelopment

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

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

旧:/站点地图

重定向到:/sitemap.aspx

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

旧:/company/termsofuse

重定向到:/company/termsofuse.aspx

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

旧:/company/careers

重定向到:/company/careers.aspx

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

旧:/services/

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

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

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

提姆

【问题讨论】:

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


    【解决方案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

    【讨论】:

      【解决方案2】:

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

      您应该能够通过配置 IIS 而不是编码来完成大多数类型的重定向。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-12-03
        • 2014-07-19
        • 1970-01-01
        • 2011-12-20
        • 1970-01-01
        • 2013-08-18
        • 2011-12-15
        • 2019-08-28
        相关资源
        最近更新 更多