可以使用NGINX的if语句和try_files指令来实现这个需求,具体配置如下:

location / {
    if ($cookie_a) {
        # 如果cookie a存在,继续执行后续指令
        # ...
    }
    else {
        # 如果cookie a不存在,读取根目录下的123.html文件并显示在浏览器
        try_files /123.html =404;
        # 停止继续执行后续指令
        return 200;
    }
}

解释一下上述配置:

  • location /:匹配所有URL,即所有请求都会经过这个location。
  • if ($cookie_a):检查请求中是否包含名为a的cookie。
  • try_files /123.html =404:尝试读取根目录下的123.html文件,如果文件存在则返回文件内容,否则返回404错误。
  • return 200:停止执行后续指令,直接返回HTTP 200响应码和123.html文件的内容。

需要注意的是,NGINX的if语句和try_files指令会影响性能,因此应该尽量避免使用if语句,并尽可能使用if指令替代

NGINX当cookie a不存在时读取根目录下123html文件的内容并显示在浏览器并停止继续执行

原文地址: https://www.cveoy.top/t/topic/fbEn 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录