鉴于以下正则表达式:
^([a-zA-Z0-9\/\-_]+)\[?]?(.+)?$
我需要添加一个字符,如果条件的第二个块为真('?'存在)。
示例:
myapp/test/urltofollow?name=john&age=36
结果:
1. [0-22] `myapp/test/urltofollow`
2. [22-39] `?name=john&age=36`
我需要的是什么:
1. [0-22] `myapp/test/urltofollow`
2. [22-39] `&name=john&age=36`
仅当?存在时,?才会被替换为& ,所以:
myapp/test/urltofollow
必须结果:
1. [0-22] `myapp/test/urltofollow`
2. [22-39] `` (empty)
答案 0 :(得分:1)
我对lighttpd不是很了解,但这可能有用:
url.rewrite-repeat = (
"^([a-zA-Z0-9\/\-_]+)(\?(.+))?$" => "http://example.com?foo=bar&$3",
"^(http://example.com?.*)&$" => "$1"
)
基本上,只需将&符号和参数添加到新URL(不带问号);如果新的URL最终以&符号结尾,请将其删除。