nginx自带变量只要其中一部分怎么办?
各位大虾好!小虾有事相求
假设我有一个$arg,arg里面有一个字段是state,现在$arg_state取到的值是:/http%3A%2F%2Fdvlshop.lechange.com%2Fproduct-79.html
现在我希望获取http%3A%2F%2Fdvlshop.lechange.com%2Fproduct-79.html
(不要前面的反斜杠) 或者是 /product-79.html
(不要中间的网站) 请问应该怎么写?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
nginx不做逻辑相关的业务,你的需求直接用nginx无法实现。改用lua吧
谢邀!
首先恭喜您已经解决了该问题!
白天忙于nextjs + react + 。。。 重构项目,没来得及看!真是抱歉!要想回答该问题,就不得不说一说在浏览器中输入一个URL后都发生了什么?以下是一个大概流程:
Nginx 是一个高性能的HTTP和反向代理web服务器,而您在http。。。 前面加上一个
/
,DNS解析不到对应的IP,更不要说建立TCP连接了,所以您在http。。。 前面加上一个/
根本到不了nginx这一步。假设真能到nginx这一步,nginx是可以通过正则匹配,重写路由的!虽然不知道你要干嘛,但是你想获取的这个值,原生nginx确实做不到,像上一位答主说的,nginx不做业务相关逻辑,如果你非要做不可, 在你现有的nginx上安装 lua_module或者直接换成openresty,用lua去实现这块的逻辑。