IIS 7 には次のルールがあります。
<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 アプリには、/ ではなく /store/ をルートとして解決する @Url.Content("~/") エントリがいくつかあります。たとえば、典型的な URL はhttp://mysite.com/store/99/coats-with-hoodsです。
編集/更新:私はまだこれに髪の毛を引っ張っているので、Url.Contentコードベースを調べることにしました.URLが書き換えられているかどうか(true)をチェックし、そうであれば関連するパス。これでは絶対 URL がわかりません。
if (!PathHelpers._urlRewriterHelper.WasRequestRewritten(httpContext))
return contentPath;
string relativePath = PathHelpers.MakeRelative(httpContext.Request.Path, contentPath);
return PathHelpers.MakeAbsolute(httpContext.Request.RawUrl, relativePath);
なぜこれになるのか誰にも分かりますか?なぜこれが起こっているのか、アプリケーションでどのように説明できるのかについて少し混乱していますか?