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

2022-05-20 16:15:02 +08:00
 LxnChan

能做到这个效果就行。

1581 次点击
所在节点    程序员
5 条回复
sardina
2022-05-20 16:21:49 +08:00
应该可以用 lua 实现
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
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
2022-05-21 13:28:42 +08:00
我感觉挂 ngx_lua 处理好点
myki
2022-05-22 11:06:49 +08:00
caddy 不香吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/854215

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX