私はあなたのニーズを完全に理解しているとは確信していませんが、少なくともそれに近いものがあります. 最初のフォルダーとファイル拡張子を取り除きます (したがって、と にexamplesite.com/folder/about.cshtml
なります)。すべてのフォルダを取り除きたい場合は、 .examplesite.com/about
examplesite.com/folder/help/about.cshtml
examplesite.com/help/about
?
<rule name="Remove Directory and Extension">
<match url="^(.*?)/(.*)\.cshtml$" />
<action type="Rewrite" url="{R:2}" />
</rule>
アップデート:
わかりました、あなたが望むのは2つのルールの組み合わせだと思います:
<rules>
<rule name="Redirect requests to friendly URLs">
<match url="^(.*?)/(.*)\.cshtml$" />
<action type="Redirect" url="{R:2}" />
</rule>
<rule name="Rewrite friendly URLs to phsyical paths">
<match url="^(.*)$" />
<action type="Rewrite" url="folder/{R:0}.cshtml" />
</rule>
</rules>
最初のルールは、すべてのリクエストがフレンドリ URL に対するものであることを確認します。2 つ目は、フレンドリ URL を受け取り、それを物理パスに書き換えます。物理パスはfolder/[FRIENDLY_PATH].cshtml
.