我在微调 Nginx url 重写规则的正则表达式时遇到了麻烦,我想做的是获取 url 的前两部分并将它们转换为变量(没什么花哨的,应该很简单)。
例如,我输入http://www.webserver.com/piece1/piece2并得到http://www.webserver.com/rewtest.php??val1=piece1&val2=piece2
到目前为止,我有:
location / {
rewrite ^/(.*)/(.*)/? /rewtest.php?val1=$1&val2=$2 last;
return 404;}
}
这似乎确实有效。问题是如果用户键入http://www.webserver.com/piece1/piece2/ 它会将 val 1 作为piece1/piece2 (作为 1 变量,而不是 2)。
此外,如果用户要键入http://www.webserver.com/piece1/,我目前在 var 1 中得到了 piece1,这很好。但是,如果用户键入http://www.webserver.com/piece1,它会给我一个错误,我想得到相同的结果(var 1=piece1)。
非常感谢任何帮助,因为我是正则表达式的新手!