IIS7 の URL 書き換え機能を使用して URL を変更しています。
/main.asp?category=Name_Of_A_Product
の中へ:
/category/name-of-a-product/
アンダースコアをハイフンに置き換える方法が見つからないことを除いて、作業の大部分を行う以下のリダイレクトおよび書き換えルールを作成しました。
各 URL にはゼロから多くのアンダースコアを含めることができ、301 リダイレクトの連鎖を避けるために、それらを 1 つの正規表現に置き換えようとしています (これは SEO に悪いと思われるため)。
これがどのように(または)できるか知っていますか?
<rule name="Redirect REAL to FRIEDNLY" enabled="true" stopProcessing="true">
<match url="^main\.asp$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{REQUEST_METHOD}" pattern="^POST$" negate="true" />
<add input="{QUERY_STRING}" pattern="^category=([^=&]+)($|&(.*))$" />
</conditions>
<action type="Redirect" url="category/{ToLower:{C:1}}/" appendQueryString="false" />
</rule>
<rule name="Rewrite FRIEDNLY to REAL" stopProcessing="false">
<match url="^category/([^/]+)/?$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="main.asp?category={R:1}" />
</rule>