【发布时间】:2012-10-26 06:13:23
【问题描述】:
我有以下 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 模式,但我有一个奇怪的问题,如果你有一个同名的类别,例如两个名称为 name/url “wheels”,无论它是否在不同的父/组下,您都将被重定向到两个中的一个,例如
/bicycles/bicycle-parts/wheels/
和
/cars/car-parts/wheels/
都会重定向到同一个页面。
我相信罪魁祸首是这样的:
<SendTo>~/CategoryDetails.aspx?url=$3&fullurl=/$1/$2/$3/&page=1</SendTo>
?url=$3 仅匹配 url 的最后一部分(轮子),所以我想我要问的是有没有办法在 url 查询字符串中包含 group+parent+category 以便它匹配所有三段而不是结尾?
【问题讨论】:
标签: c# asp.net regex url-rewriting