我想使用url rewrite for linux lighttpd.conf
但我无法获得正确的正则表达式。REGULAR EXPRESSION(url.rewrite)
我的网址是ip/cgi/aaa/bbb
,我想重写url路径。我的目标是/var/www/cgi/aaa.cgi?par=bbb
我写的规则为"^/cgi/([^/]+)\/(.*)?"=> "/var/www/cgi/$1.cgi?par=$2"
但不知何故,我不能得到的参数par
值。
我想使用url rewrite for linux lighttpd.conf
但我无法获得正确的正则表达式。REGULAR EXPRESSION(url.rewrite)
我的网址是ip/cgi/aaa/bbb
,我想重写url路径。我的目标是/var/www/cgi/aaa.cgi?par=bbb
我写的规则为"^/cgi/([^/]+)\/(.*)?"=> "/var/www/cgi/$1.cgi?par=$2"
但不知何故,我不能得到的参数par
值。
你的问题是因为你在输入的开始处锚定。
^/cgi
..will不匹配ip/cgi
,因为ip
处于起步..不/cgi
。要修复它。把ip
在你有什么正面:
^ip/cgi/([^/]+)\/(.*)?
# ^^ this part
下面是输出一旦更改:
“^”在字符串的开头匹配。由于您的ip是动态的,因此尝试从“cgi”进行匹配,因为它是绝对的。
我试着在http://gskinner.com/RegExr/的输入下面工作正常。
/cgi/([^/]+)\/(.*)?
/var/www/cgi/$1.cgi?par=$2
ip/cgi/aaa/bbb
结果是IP /无功/网络/ CGI/aaa.cgi?PAR = BBB
如果你不想在结果字符串 “ip”,使用
(.*)/cgi/([^/]+)\/(.*)?
/var/www/cgi/$2.cgi?par=$3
ip/cgi/aaa/bbb
结果是/var/www/cgi/aaa.cgi?par=bbb(没有ip)
但ip是不同的,我怎么写规则 – MagicConch 2013-03-14 03:41:19
删除锚字符'^'..它可能会工作后那。 – 2013-03-14 03:44:40
但我用我的规则“^/cgi /([^/]+)\/(.*)?”=>“/var/www/cgi/$1.cgi?par=$2”,我可以去CGI但我不能得到票面价值 – MagicConch 2013-03-14 03:47:59