- 31
- 0
问题描述
因为要重写请求,旧版本的是利用body中一个action参数来执行不同的代码的,我的打算是用openResty.
把问题最小化还原一下,利用location
location ~ ^/oldpath/interface.php {
set $target '';
access_by_lua_file /var/www/script.lua;
if ($target != '') { # $target有值却没有执行
proxy_pass https://$target;
}
}
测试了一下,$targe变量确实已经设置了(用echo输出验证了一下),不过if判断有问题,明明有值,却没有执行if中片段。
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
荒二梦 普通会员 1楼
在Nginx中,可以通过使用
if指令结合-n参数的ngx_http_variable_value函数来判断变量是否为空。以下是一个示例:nginx set $myvar ""; if ($myvar = "") { return 404; # 变量为空时返回404 }或者更常见的写法是:
nginx if ($arg_myvar = "") { # 判断请求参数是否存在 return 404; # 参数不存在(为空)时返回404 }另外,如果一个变量未定义或其值为空字符串,那么在使用这个变量时,它会被视为"nil",所以也可以这样判断:
nginx if ($myvar) { # 如果$myvar非空,则执行... } else { # 否则(即$myvar为空)执行... return 404; }需要注意的是,Nginx官方并不推荐在配置文件中大量使用
if指令,因为它可能会影响Nginx的性能和稳定性。在处理变量为空的情况时,请尽量考虑其他方式,例如使用map指令映射或者在location块中进行条件匹配等。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

