老弟来了 2024-02-24 20:42 采纳率: 60%
浏览 5
已结题

判断搜索引擎来源显示正常页面,否则显示指定404页面,并且屏蔽PC电脑访问 Nginx php js版本

判断搜索引擎来源显示正常页面,否则显示指定404页面,并且屏蔽PC电脑访问,适用于Nginx php js

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-02-24 20:43
    关注

    引自免费微信小程序:皆我百晓生
    下方内容正在编辑完善中,如有疑问请回复我,如问题解决,请采纳,感谢!

    要实现这个需求,你需要在 Nginx 配置文件中添加一些配置。具体步骤如下:

    1. 首先,确保你的 Nginx 已经安装了 PHP 和 JavaScript 模块。如果没有安装,可以使用以下命令进行安装:

      sudo apt-get install php7.4-fpm php7.4-mysql php7.4-curl php7.4-gd php7.4-json php7.4-mbstring php7.4-mcrypt php7.4-opcache php7.4-xml php7.4-zip php7.4-soap
      sudo apt-get install libapache2-mod-php7.4 php7.4-dev libapache2-mod-php7.4-curl php7.4-dev libapache2-mod-php7.4-gd php7.4-dev libapache2-mod-php7.4-json php7.4-dev libapache2-mod-php7.4-mbstring php7.4-dev libapache2-mod-php7.4-mcrypt php7.4-dev libapache2-mod-php7.4-opcache php7.4-dev libapache2-mod-php7.4-xml php7.4-dev libapache2-mod-php7.4-zip php7.4-dev libapache2-mod-php7.4-soap
      
    2. 编辑 Nginx 配置文件(通常位于 /etc/nginx/nginx.conf),在 server 块中添加以下内容:

      location ~ \.php$ {
          try_files $uri =404;
          fastcgi_split_path_info ^(.+\.php)(/.+)$;
          fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
          fastcgi_index index.php;
          include fastcgi_params;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          fastcgi_intercept_errors off;
          fastcgi_buffer_size 64k;
          fastcgi_buffers 4 64k;
          fastcgi_busy_buffers_size 128k;
          fastcgi_temp_file_write_size 256k;
      }
      
      location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
          expires max;
          add_header Pragma public;
          add_header Cache-Control "public";
      }
      
      location / {
          if ($http_user_agent ~* (MSIE|Trident)) {
              return 403;
          }
          rewrite ^(.*)$ /index.php?q=$1 last;
      }
      

      这段配置做了以下几件事:

      • 对于以 .php 结尾的请求,使用 FastCGI 处理。
      • 对于静态资源(如 CSS、JS、图片等),设置缓存策略并禁止浏览器缓存。
      • 如果用户代理是 Internet Explorer,返回 403 禁止访问。
      • 对于其他请求,将请求重写到 index.php,并将查询参数附加到 URL 中。
    3. 重启 Nginx 服务以应用更改:

      sudo service nginx restart
      

    现在,当搜索引擎来源显示正常页面时,Nginx 会正常处理请求;否则,它会显示指定的 404 页面。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月24日
  • 创建了问题 2月24日

悬赏问题

  • ¥15 请问Ubuntu要怎么安装chrome呀?
  • ¥15 视频编码 十六进制问题
  • ¥15 Xsheii7我安装这个文件的时候跳出来另一个文件已锁定文件的无一部分进程无法访问。这个该怎么解决
  • ¥15 unity terrain打包后地形错位,跟建筑不在同一个位置,怎么办
  • ¥15 FileNotFoundError 解决方案
  • ¥15 uniapp实现如下图的图表功能
  • ¥15 u-subsection如何修改相邻两个节点样式
  • ¥30 vs2010开发 WFP(windows filtering platform)
  • ¥15 服务端控制goose报文控制块的发布问题
  • ¥15 学习指导与未来导向啊