我正试图完成这样一种情况:
http://verylongpath.com/show.html,a1,b2,c3,stop,d4,e5
会被改写为
path=a1&attributes=b2,c3&splitters=d4,e5 (或者更像somepath.html?path=1&attributes=$numberOfGroup&splitters=$numberOfGroup)
到目前为止,我已经成功地创建了类似于
<from>^/(?!whatever/)(.*),a([0-9]+)(,(.+))?.html(\?(.*))?$</from>
<to last="true">somepath.html?path=$2&attributes=$4&$6</to>很明显,我已经修改了代码的这一部分:
(,(.+))具有以下含义:将每个字符串(例如: b3、c56、e12345)按',‘分隔,直到遇到特定的字符串(“停止”),然后继续匹配,直到遇到’‘。
我试着用
(,(.+?(?=stop)))?在……里面
<from>^/(?!whatever/)(.*),a([0-9]+)(,(.?!(?=stop)))?,stop(,(.+))?.html(\?(.*))?$</from>没有成功的结果,因为'stop‘仍然被匹配为一个正常的字符串,我的rewroten url如下所示:
"somepath.html?path=54&attributes=a1,b2,c3,stop,d4,e5&"如果有人能帮我找到有效的解决办法,我将不胜感激。
发布于 2015-10-06 13:41:40
在from标记中尝试以下表达式:
^[^,]+,(a[0-9]+),(.*?),stop,?(.*)$请注意,它是一个非常通用的表达式。上面没有花哨的比赛/组。如果任何匹配的组都是可选的,则使用?将其变为可选组。
现在,在重写的URL中:
somepath.html?path=$1&attributes=$2&splitters=$3https://stackoverflow.com/questions/32971088
复制相似问题