我在IIS 7以下規則:IIS 7重寫規則和Url.Content發出
<rule name="Category" enabled="true">
<match url="^store/([0-9]+)/(.*)" />
<action type="Rewrite" url="store?cid={R:1}" appendQueryString="false" logRewrittenUrl="true" />
</rule>
這似乎是在我的ASP.Net MVC 3應用程序正常工作,但是我有幾個@ Url.Content (「〜/」)條目解析爲/ store /作爲根,而不是/。例如,典型的網址是http://mysite.com/store/99/coats-with-hoods。編輯/更新:我仍然拉我的頭髮在這一個,所以我決定看看Url.Content代碼庫,我注意到它檢查URL是否已被重寫(真)和如果是,則使得路徑有關,這反過來也不給我絕對的URL:
if (!PathHelpers._urlRewriterHelper.WasRequestRewritten(httpContext))
return contentPath;
string relativePath = PathHelpers.MakeRelative(httpContext.Request.Path, contentPath);
return PathHelpers.MakeAbsolute(httpContext.Request.RawUrl, relativePath);
人知道爲什麼會是什麼?我有點困惑,爲什麼會發生這種情況,以及我如何在我的應用程序中解釋它?
你可以提供更多關於你的項目和IIS設置文件夾結構的信息嗎? –
它運行在網站的根目錄下,沒有運行在虛擬目錄中,你還需要知道什麼? – Mantorok