作成しようとしている次の URL Rewrite があります。
<rule name="Imported Rule 3">
<match url="^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)" ignoreCase="true" />
<action type="Rewrite" url="/{R:0}/{R:1}.aspx?p={R:2}&title={R:3}" appendQueryString="true" />
</rule>
以下のURLを下記に書き換えてほしい。
/Catalog/Product/1/Title-Description
に
/Catalog/Product.aspx?pid=1&title=Title-Description
と
/Events/Detail/1/Today
/Events/Detail.aspx?pid=1&title=Title-Description
基本的に、書き込みを汎用にして、複数のシナリオに適用したいと考えています。4 つのスラッシュを含む URL がある場合はいつでも、書き換えルールでそれを取得して URL に変換する必要があります。
したがって、イベントのURL
1/1/1/1 が有効です。
どちらに変換されますか
/1/1.aspx?pid=1&title=1
例を挙げましょう。
シナリオごとに個別に書き直す必要はありません。
しかし、私が書いた上記の書き換えは、サーバー上でエラーをスローし続け、構文の何が問題なのかを見つけることができないようです. サーバーは一般的な 500 エラーを表示するので、それを絞り込むことはできません。
問題はアクションタグにあると確信しています。
私はそれを次のように書きました
<action type="Rewrite" url="/{R:0}/{R:1}.aspx?p={R:2}&title={R:3}" appendQueryString="true" />
と
<action type="Rewrite" url="/{R:1}/{R:2}.aspx?p={R:3}&title={R:4}" appendQueryString="true" />
どちらのオプションも機能しません。