次のURL書き換えルールがあります。
<ConfigRule>
<LookFor>/([^/]*)/([^/]*)/([^/]*)/</LookFor>
<Exclude>/Admin/(.*)</Exclude>
<SendTo>~/CategoryDetails.aspx?url=$3&fullurl=/$1/$2/$3/&page=1</SendTo>
<IgnoreQueryStringInMatch>true</IgnoreQueryStringInMatch>
</ConfigRule>
ここで、$ 1、$ 2、および$ 3は、それぞれ親グループ、親カテゴリ、およびカテゴリに相当します。私がやろうとしているのは、たとえば次のようなURLと一致させることです/cars/car-parts/wheels/
。
正規表現はURLパターンと一致しますが、同じ名前のカテゴリがある場合、たとえば名前/ url "wheels"の2つがある場合、別の親/グループの下にあるかどうかに関係なく、次のような奇妙な問題が発生します。 2つのうち1つだけにリダイレクトされます。
/bicycles/bicycle-parts/wheels/
と
/cars/car-parts/wheels/
両方とも同じページにリダイレクトされます。
犯人はこれだと思います:
<SendTo>~/CategoryDetails.aspx?url=$3&fullurl=/$1/$2/$3/&page=1</SendTo>
はURL?url=$3
の最後の部分(ホイール)のみに一致するので、私が求めているのは、URLクエリ文字列にgroup + parent + categoryを含めて、3つのセグメントすべてに一致させる方法があると思います。終わり?