1

当获取查询字符串我有以下规则:使用Tuckey URL重写

<rule> 
    <from>^/users/(.*)$</from> 
    <to last="true">/users.do$1</to> 
</rule> 

我想匹配以下网址:

http://localhost:8077/users/?elemsPerPage=10 

,重定向到:

http://localhost:8077/users.do?elemsPerPage=10 

问题是,当URL重写器引擎发现“?”字符在url中不会返回$ 1匹配参数中的其他内容。它不会将参数添加到查询字符串中。有任何想法吗?

+1

通常这是通过向规则添加一个qsa(query-string-append)来完成的,该规则不幸似乎不被支持。也许增加%{QUERY_STRING}可以提供帮助吗?但没有经过测试。 – 2012-02-21 00:50:51

+0

感谢您的洞察力,我发现有一种方法可以使用变量来实现这一点。对于查询字符串,好的是%{query-string} – Fgblanch 2012-02-21 09:38:56

回答

6

最后,我已经找到一种方法来解决这个问题:

规则:

<rule> 
    <from>^/users/$</from> 
    <to last="true">/users.do?%{query-string}</to> 
</rule> 
5

有一种更好的方式,尝试添加使用的查询字符串=“真”在urlrewrite

<urlrewrite use-query-string="true">

+0

这很好用。 – Abhi 2014-01-16 12:23:34

+0

这是更合适的解决方案。 – hitec 2014-08-14 17:41:50

+0

这可能是显而易见的,但此解决方案假定您希望所有重写都具有此功能。 – tkane2000 2015-01-07 20:29:00