0

我有以下 URL 重写规则:

<ConfigRule>
     <LookFor>/([^/]*)/([^/]*)/([^/]*)/</LookFor>
     <Exclude>/Admin/(.*)</Exclude>
     <SendTo>~/CategoryDetails.aspx?url=$3&amp;fullurl=/$1/$2/$3/&amp;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&amp;fullurl=/$1/$2/$3/&amp;page=1</SendTo>

Where?url=$3仅匹配 url 的最后一部分(轮子),所以我想我要问的是有没有办法在 url 查询字符串中包含 group+parent+category 以便它匹配所有三个段而不仅仅是结尾?

4

1 回答 1

1

我想您想要的是在生成您的页面(CategoryDe​​tails.aspx)的 ASP 脚本中使用fullurl参数而不是url。包含所有三个层次结构级别的完整路径已经传递到重写的 url,因此这里与 url 重写无关。

于 2012-11-09T21:39:18.147 回答