服务器配置

Nginx屏蔽电脑端访问,但不限制蜘蛛爬取

我的站长站 2023-11-06 人阅读

要实现这个功能,你可以使用 Nginx 的 ngx_http_user_agent_module 模块来识别蜘蛛和普通用户的用户dai理。下面是一段示例代码,可以屏蔽 PC 端用户的访问,但对蜘蛛开放:

server {  
    listen 80;  
    server_name example.com;  
  
    location / {  
        if ($http_user_agent ~* (PC|Windows|Macintosh)) {  
            return 403;  
        }  
  
        # 蜘蛛的用户dai理字符串,可以根据需要进行修改  
        set $spider_user_agent "Googlebot";  
  
        if ($http_user_agent ~* $spider_user_agent) {  
            # 对蜘蛛开放的代码  
            # 可以根据需要添加相应的重定向或dai理设置  
        }  
        else {  
            # 普通用户的代码  
            # 可以根据需要添加相应的重定向或dai理设置  
        }  
    }  
}

在上面的代码中,我们使用 if 指令来检查用户dai理是否包含 PC、Windows 或 Macintosh 等关键词,如果是,则返回 403 禁止访问的错误页面。然后,我们使用 set 指令定义了一个名为 $spider_user_agent 的变量,该变量包含一个蜘蛛的用户dai理字符串。在 if 指令中,我们使用正则表达式匹配来检查用户dai理是否包含该字符串。如果是,则执行相应的代码块,例如添加重定向或dai理设置等。
请注意,使用 if 指令进行用户dai理匹配可能不是最佳实践。更好的方法是使用 Nginx 的 map 模块或其他更高级的配置选项来实现更精细的用户dai理控制。但是,上述代码可以作为一个简单的示例来帮助你开始实现所需的功能。

最新更新