ZBLOG

server { listen 80; # 设置监听端口 resolver 8.8.8.8; # 使用 Google 的公共 DNS location / { proxy_pass http://$http_host$request_uri; proxy_set_header Host $http_host; proxy_set_header X-R...

要根据请求中是否包含特定字符来返回 404 错误,可以使用 Nginx 的 if 指令和 return 指令。以下是修改后的 Nginx 配置示例:

  1. server {
  2. listen 80; # 设置监听端口
  3. resolver 8.8.8.8; # 使用 Google 的公共 DNS
  4. location / {
  5. # 检查请求 URI 是否包含特定字符(例如 "badword")
  6. if ($request_uri ~* "badword") {
  7. return 404; # 返回404错误
  8. }
  9. proxy_pass http://$http_host$request_uri;
  10. proxy_set_header Host $http_host;
  11. proxy_set_header X-Real-IP $remote_addr;
  12. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  13. # 可选: 添加一些安全设置
  14. proxy_intercept_errors on;
  15. error_page 404 = @error404; # 当发生404错误时重定向到命名位置
  16. }
  17. location @error404 {
  18. return 403; # 返回403禁止访问
  19. }
  20. }

修改说明:

  1. location / 块中,添加了一个 if 条件判断,检查 $request_uri 中是否存在特定字符 "badword"

    • 如果请求的 URI 中包含 "badword",则返回状态码 404
  2. 请将 "badword" 替换为你想要检查的具体字符或字符串。

注意事项:

  • 使用 if 指令在 Nginx 中可能会引发一些复杂性,因此需要谨慎使用。对于较简单的匹配需求,一般建议使用更合适的方法,如正则表达式。
  • 根据实际情况测试配置以确保其按预期工作。

希望这可以帮助你完成所需的功能!如果有其他问题,请随时问我。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=22869

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?