web.config重写规则:从一个查询字符串重写到包含第一个查询字符串的另一个查询字符串

时间:2013-04-29 08:46:39

标签: url-rewriting query-string

我遇到如下问题:

我想从/index.php?jobs重写为/index.php?retail-jobs-in-london

我尝试了以下规则:

<rule name="jobs" stopProcessing="true">
   <match url="index.php$" />
   <conditions trackAllCaptures="true">
      <add input="{QUERY_STRING}" pattern="jobs" />
   </conditions>
   <action type="Redirect" appendQueryString="false" url="http://www.domain.com/index.php?retail-jobs-in-london" />
</rule>

但是,我得到了预期页面/index.php?retail-jobs-in-london的错误,我相信因为“jobs”在目标页面的查询字符串中,所以它会尝试循环。

如何显式查找完全且仅“作业”的查询字符串?

提前致谢

1 个答案:

答案 0 :(得分:2)

这应该有用。

更改此行以使正则表达式匹配字符串的开头和结尾:

<add input="{QUERY_STRING}" pattern="^jobs$" />

或者你可以改变它,只有当它以“作业”开始时才会匹配,这会在其他东西被添加到最后时处理:

<add input="{QUERY_STRING}" pattern="^jobs" />