2017-09-14 211 views
0

我试图使用nginx中的位置块将目录路径传递给index.php作为获取参数。作为参数的Nginx目录路径

所以URL /api/arg1/arg2/传递作为/api/index.php?arg1=$1&$arg=2

这里是我下面的尝试,有人可以用正则表达式或一个更好的方法帮助。

location ~ "^/api/(\w+)/([A-z,0-9].*)/$" { 

    alias /api/index.php?arg1=$1&arg2=$2; 

} 

侧面说明,要传递的参数是一个字没有被由数字和字母,无需其他符号的空格。

回答

1

试试下面

location ~ /api/(?P<arg1>\w+)/(?P<arg2>[A-z,0-9].*)/$" { 

    rewrite "^.*$" /api/index.php?arg1=$arg1&arg2=$arg2; 

} 

如果您不担心这些ARGS数据的,我宁愿用

location ~ "/api/(?P<arg1>[^/]+)/(?P<arg2>[^/]+)/$" { 

    rewrite "^.*$" /api/index.php?arg1=$arg1&arg2=$arg2; 

} 
+0

感谢您的答复。在经历了五个小时左右的nginx和获取重定向循环后,找不到文件和配置错误,我放弃了并尝试了nodejs,并设法在三分钟后获得我正在尝试的内容。 (/^\/api \ /([az] +)\/$ /,handle);'''app.get(“/ api”,handle);''' '/'''''''''''''''''''''''''''''''''' – Seiche