Discuz!插件:蜘蛛爬取记录http带443端口的页面而不直接爬取https怎么解决?
作者:admin发布时间:2023-06-01分类:Discuz!百科浏览:141评论:0
很久以前用Discuz!程序做网站的时候遇到这样一个情况,下载安装了Discuz!蜘蛛统计插件,在使用dDiscuz!蜘蛛统计插件的时候,蜘蛛爬取记录里爬取的URL是http带443端口的链接而不是直接爬取https。
一直以为是宝塔的原因,以为是宝塔没有告诉蜘蛛本站启用的是443ssl端口,使用https协议直接访问的,还跑去宝塔求助。其实这是一个乌龙。 那么问题来了:为什么蜘蛛爬取http带443端口的页面而不直接爬取https?其实并不是,只是插件代码的问题,插件是在组装URL链接的时候的一个毛病。就是80端口采用http协议组装URL,但是开启https的网站使用的是443端口,当不是80端口的时候,代码默认将端口号添加进了URL里。
百度:http://www.wensha.info:443/bbssub_49_1_1.html
谷歌:http://www.wensha.info/bbssub_50_1_1.html
...............
正常的应该是:
百度:https://www.wensha.info/bbssub_49_1_1.html
谷歌:https://www.wensha.info/bbssub_50_1_1.html
我们点击Discuz!蜘蛛统计插件记录里的前面带:443端口的链接,出现以下提示:
Bad Request Your browser sent a request that this server could not understand. Reason: You're speaking plain HTTP to an SSL-enabled server port. Instead use the HTTPS scheme to access this URL, please. Apache Server at SSL.www.wensha.info Port 80
这里我使用的是宝塔软件!
在插件合适位置添加以下代码:
文煞云:优质免备香港云服务器提供、新注册用户享受1元购云服务,关注微信公众号全站永久7折:http://idc.wensha.info
$port = $_SERVER["SERVER_PORT"];//端口 $useragent = strtolower($_SERVER['HTTP_USER_AGENT']);//userAGENT $url = "http://".$_SERVER["SERVER_NAME"]; if ($port=="443"){ $url= "https://".$_SERVER["SERVER_NAME"]; }
这里在Discuz!蜘蛛统计插件里增加了一个判断,判断是不是443端口,是443端口则把URL格式改为https://....的格式就可以了。
原教程来自‘文煞PHP笔记网’:https://www.wensha.info/post/36.html
相关推荐
你 发表评论:
欢迎- Discuz!百科排行
- 随机文章 | 热门文章 | 热评文章
-
- 搜索
- 热评文章