【问题标题】:URL tuckey - query stringURL tukey - 查询字符串
【发布时间】:2012-03-27 09:35:03
【问题描述】:

我有一个网址:http://dominename:port/first/1/second/2/third/3 并想重写为 http://dominename:port/first=1/second=2/third=3。我可以先得到1。但是对于2和3,我怎样才能得到呢?

下面是我的代码:

 <rule>
    <from>^/first/(.*)$</from>
    <to type="forward">/dominename:port/first=1</to>
</rule>

谢谢!

【问题讨论】:

  • 如果您想得到答案,那么您需要添加更多信息。例如,这是什么语言,或者这是框架/服务的设置?
  • 我们正在使用 spring 框架和 java 和 tucky URL 重写。

标签: java spring url-rewriting tuckey-urlrewrite-filter


【解决方案1】:

您可以通过$1$2、...访问正则替换表达式

<rule>
    <from>^/first/(.*)/second/(.*)/third/(.*)$</from>
    <to type="forward">/first=$1/second=$2/third=$3</to>
</rule>

但这行不通,因为您不能在 url 的路径中包含 =

所以你应该这样做:

<rule>
    <from>^/first/(.*)/second/(.*)/third/(.*)$</from>
    <to type="forward">something?first=$1&second=$2&third=$3</to>
</rule>

【讨论】:

  • 感谢您的回复。有没有办法单独制定规则?就像第一个作为规则 1 并将其存储在一个变量中并搜索第二个并应用该规则。谢谢!
  • 我不确定你想做什么,但是 tucky URL 不是编程语言,所以我认为答案是:不。不管怎样,看看它的doku。
  • 谢谢,拉尔夫!您的回答帮助我解决了我的问题。感谢您的洞察力。
  • 也许你需要转义 & 号。
  • @vikasdevde:使用 &而不是 XML 文件中的 &。
猜你喜欢
  • 1970-01-01
  • 2014-05-30
  • 1970-01-01
  • 2011-07-01
  • 2013-11-21
  • 2011-08-02
  • 2013-08-18
  • 2012-01-18
  • 1970-01-01
相关资源
最近更新 更多