首页
注册
登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请
登录
V2EX 提问指南
广告
V2EX
›
问与答
Nginx 如何将 request path 作为参数传递给后端?
andybest
·
2014-11-12 15:40:29 +08:00
· 2350 次点击
这是一个创建于 3513 天前的主题,其中的信息可能已经有所发展或是发生改变。
例如客户端浏览器访问
http://my.com/abc/d.html
或者其他任何基于
my.com
下的路径,
将该路径转至
http://127.0.0.1:81/process.php?path=/abc/d.html
进行处理
我使用 proxy_pass 方法如下,确不生效:
server {
...
location / {
proxy_pass
http://127.0.0.1:81/process.php?path=$1
;
}
}
这个 $1 变量在 rewrite 指令后可代表 request path ,而 proxy_pass 下却不行呢,求教!
request
path
Nginx
6 条回复
•
2014-11-13 12:48:50 +08:00
1
holyghost
2014-11-12 18:11:07 +08:00
1
带uri的请求 需要用rewrite重写 然后再proxy_pass的
2
extreme
2014-11-12 18:22:48 +08:00
1
“$1”是正则表达式的东西,你都没用正则表达式,肯定无效。
其实有一个更好的方法:
proxy_pass http://127.0.0.1:81/process.php?path=$request_uri;
3
extreme
2014-11-12 18:25:05 +08:00
1
@
extreme
忘了说,$request_uri是带请求参数的,如果要无参数的,就用$script_name
4
extreme
2014-11-12 18:27:39 +08:00
1
@
extreme
记错了,不是$script_name ,$request_filename才对……
5
ryd994
2014-11-13 00:08:56 +08:00 via Android
@
extreme
$uri不就没参数么
6
extreme
2014-11-13 12:48:50 +08:00
@
ryd994
这是针对一个问题的多种解决方案。
关于
·
帮助文档
·
博客
·
API
·
FAQ
·
实用小工具
·
5287 人在线
最高记录 6679
·
Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 35ms ·
UTC 06:03
·
PVG 14:03
·
LAX 23:03
·
JFK 02:03
Developed with
CodeLauncher
♥ Do have faith in what you're doing.