IIS URL 書き換えモジュールを使用して、書き換えマップと書き換えルール (リダイレクトではない)を使用して内部 URL をフレンドリ URL でマスクしています。これは私の書き換えマップです:
<rewriteMap name="HashTest">
<add key="/nohash" value="/nohash.aspx" />
<add key="/hash1" value="/hashtest.aspx#hash1" />
</rewriteMap>
これが私の書き換えルールです。
<rule name="Rewrite rule1 for HashTest">
<match url=".*" />
<conditions>
<add input="{HashTest:{REQUEST_URI}}" pattern="(.+)" />
</conditions>
<action type="Rewrite" url="{C:1}" />
</rule>
これはハッシュタグのない URL で機能するため、www.mysite.com/nohashをクエリするたびに、ブラウザーで URL を変更してwww.mysite.com/nohash.aspxのコンテンツが表示されます。
ハッシュタグを含む URL に書き換えようとすると、404 エラーが発生します。
ここで、ルール アクション タイプをRedirectに変更すると、リダイレクトが正常に行われるため、書き換えで機能しない理由がわかりません。
要求時にハッシュタグがサーバーに送信されないことはわかっていますが、書き換えマップが<add key="/hashtest.aspx#hash1" value="/hash1" />
.
リダイレクトがハッシュタグで機能するのに、書き換えが機能しない理由についての洞察はありますか?. 私は IIS リダイレクトと結婚していません。別のモジュールまたはアプローチがあれば、それを使用できます。大歓迎です