繁体   English   中英

将/ folder重定向到ASP.NET和IIS 6上的/mypage.aspx

[英]Redirect /folder to /mypage.aspx on ASP.NET and IIS 6

我正在尝试为用户设置较短的URL,以便用户在其营销材料中使用(例如,mydomain.com/jobs指向mydomain.com/employment.aspx)。 造成这种情况的最大原因是,我们即将启动/employment.aspx无法使用的新站点。 在新站点中,我可以使用/ jobs,但是我不知道如何在旧站点上进行更改。 我正在使用IIS 6和ASP.NET 3.5。

我尝试过的所有选项,已经有可以使用的代码。 我不确定发生了什么或出了什么问题。

  1. system.web / urlMappings <add url="~/jobs" mappedUrl="~/employment.aspx" /> -在我的PC上工作,在服务器上不工作。
  2. system.web / urlMappings <add url="~/jobs/default.aspx" mappedUrl="~/employment.aspx" /> />-/jobs/default.aspx有效,但/ jobs无效。
  3. 配置/ urlrewritenet <add name="RewriteJobs" virualUrl="~/jobs" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/employment.aspx" ignoreCase="true" /> <add name="RewriteJobs2" virualUrl="~/jobs/default.aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/employment.aspx" ignoreCase="true" /> -均<add name="RewriteJobs" virualUrl="~/jobs" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/employment.aspx" ignoreCase="true" /> <add name="RewriteJobs2" virualUrl="~/jobs/default.aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/employment.aspx" ignoreCase="true" />
  4. 我看到了在Application_BeginRequest方法中使用global.asax引用,但这也不起作用。

谁能指出我做错事情的正确方向?

您可能会考虑使用Helicon Isapi重写,因为我记得在IIS 6上设置重写模块存在一些问题。另一方面,我对helicon并不感到兴奋。 仍然是尝试的一种选择。

在不弄乱任何设置或插件的情况下,最简单的方法是实际创建该目录并在其中放置文件。 您可以具有以下内容的空default.aspx:

<%@ Page Language="C#" %>

<script type="text/C#" runat="server">
void Page_Load(object sender, System.EventArgs e) {
    Response.Redirect("~/employment.aspx");
}
</script>

确保IIS将default.aspx视为该目录的默认页面。

或者,如果您想使用301而不是302,请手动设置这些标头,因为Response.RedirectPermanent在.NET 4之前不可用。

这不是最“正确”的方法,如果您尝试执行太多操作,将变得一团糟,但这是一种快速修复,暂时可以发挥作用。

也许这对您有用,一个IIS修复程序:

http://www.iis.net/downloads/microsoft/url-rewrite

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM