V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
LxnChan
V2EX  ›  程序员

如何在 Nginx 中限制特定 UA 访问特定路径(或文件)?

  •  
  •   LxnChan ·
    lxnchan · 2022-05-20 16:15:02 +08:00 · 1699 次点击
    这是一个创建于 950 天前的主题,其中的信息可能已经有所发展或是发生改变。

    能做到这个效果就行。

    5 条回复    2022-05-22 11:06:49 +08:00
    sardina
        1
    sardina  
       2022-05-20 16:21:49 +08:00
    应该可以用 lua 实现
    eason1874
        2
    eason1874  
       2022-05-20 16:28:03 +08:00
    用 map 匹配定义变量然后用 if 判断,或者直接用 if 正则匹配。原生 if 不支持多条件,写起来有点麻烦。如果有 ngx_lua 或者 njs 模块就很简单

    http://nginx.org/en/docs/http/ngx_http_map_module.html#map
    http://nginx.org/en/docs/http/ngx_http_rewrite_module.html#if
    cccssss
        3
    cccssss  
       2022-05-20 17:27:46 +08:00
    set $mobile_rewrite do_not_perform;
    if ($http_user_agent ~* "(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino" ) {
    set $mobile_rewrite perform;
    }
    location / {
    root /home/wwwroot/pc.static;
    if ($mobile_rewrite = perform) {
    root /home/wwwroot/pc.static;
    }
    }

    之前写的一个判断 pc 还是手机设备的逻辑
    MeteorCat
        4
    MeteorCat  
       2022-05-21 13:28:42 +08:00 via Android
    我感觉挂 ngx_lua 处理好点
    myki
        5
    myki  
       2022-05-22 11:06:49 +08:00
    caddy 不香吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   995 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 21:03 · PVG 05:03 · LAX 13:03 · JFK 16:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.