【问题标题】:URL Rewriting combine query string valuesURL 重写组合查询字符串值
【发布时间】:2012-10-26 06:13:23
【问题描述】:

我有以下 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>

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

【问题讨论】:

    标签: c# asp.net regex url-rewriting


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2011-08-02
      • 2012-01-18
      • 1970-01-01
      • 2014-08-07
      • 2019-02-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多