全方位站长技能、SEO优化学习平台
当前位置:网站首页 > Discuz笔记 > 正文

Discuz!插件:蜘蛛爬取记录http带443端口的页面而不直接爬取https怎么解决?

作者:admin发布时间:2023-06-01分类:Discuz笔记浏览:257评论:0


温馨提示:手机扫码可阅读当前文章!
文章简介:很久以前用Discuz!程序做网站的时候遇到这样一个情况,下载安装了Discuz!蜘蛛统计插件,在使用dDiscuz!蜘蛛统计插件的时候,蜘蛛爬取记录里爬取的URL是http带443端口的链接而不是直接爬取https。一直以为是宝塔的原因,...

很久以前用Discuz!程序做网站的时候遇到这样一个情况,下载安装了Discuz!蜘蛛统计插件,在使用dDiscuz!蜘蛛统计插件的时候,蜘蛛爬取记录里爬取的URL是http带443端口的链接而不是直接爬取https。


一直以为是宝塔的原因,以为是宝塔没有告诉蜘蛛本站启用的是443ssl端口,使用https协议直接访问的,还跑去宝塔求助。其实这是一个乌龙。 那么问题来了:为什么蜘蛛爬取http带443端口的页面而不直接爬取https?其实并不是,只是插件代码的问题,插件是在组装URL链接的时候的一个毛病。就是80端口采用http协议组装URL,但是开启https的网站使用的是443端口,当不是80端口的时候,代码默认将端口号添加进了URL里。


Discuz!插件:蜘蛛爬取记录http带443端口的页面而不直接爬取https怎么解决?  第1张


百度: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

这里我使用的是宝塔软件!


在插件合适位置添加以下代码:


$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笔记排行
    随机文章 | 热门文章 | 热评文章

服务热线

1888888888

要发发发发发发

站长微信公众号

站长微信公众号