我有以下网址重写规则:
<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”,无论是否在不同的父/组下,您都将被重定向到两个中的一个,例如。
/bicycles/bicycle-parts/wheels/
和
/cars/car-parts/wheels/
两者都会重定向到同一页面。
我相信罪魁祸首就是这样:
<SendTo>~/CategoryDetails.aspx?url=$3&fullurl=/$1/$2/$3/&page=1</SendTo>
?url=$3
只匹配url(wheel)的最后一部分,所以我想我要问的是有没有办法在url querystring中包含group + parent + category以便它匹配所有三个段而不仅仅是结尾?
答案 0 :(得分:1)
我想你想要的是在生成你的页面的ASP脚本中使用 fullurl 参数而不是 url (CategoryDetails.aspx)。包含所有三个层次结构级别的完整路径已经传递到重写的URL中,因此在这里使用url重写没什么可做的。