簡體   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