私はこれを 2 つのルールでごまかすことができました。私が好きかもしれないほどきれいではありませんが、あなたは何ができますか?
<rule name="ProductsPagingRule" stopProcessing="false">
<match url="^products([a-z0-9\-/]*)(?:/([0-9]+)/)"/>
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
</conditions>
<action type="Rewrite" url="products{R:1}/?Page={R:2}" />
</rule>
<rule name="ProductsRule" stopProcessing="true">
<match url="^products/([a-z0-9\-/]*)/" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
</conditions>
<action type="Rewrite" url="products.aspx?PageId={R:1}" />
</rule>
単一のルールに最も近いものは次のとおりです。
^products(?=(?:(?:[a-z0-9\-/]*)/([0-9]+)/$)?)(.[a-z0-9\-/]*)
誰かが勇気を持っているなら、これが単一のルールで行われるのを見ることにまだ興味があります...