首页 » Linux » CentOS » 独家完美解决百度站内搜索不支持https问题

独家完美解决百度站内搜索不支持https问题

 

开篇说明:此方法和网上其他的方法不同,我觉得更好理解,步骤我写的很详细。

百度大力提倡使用https,然而自家的产品却还在使用http,例如百度分享、百度站内搜索等,但是没办法,该用还是得用(此处应该有无数只草泥马在奔腾)。

今天吴昊博客开始使用百度站内搜索,发现提示不安全脚本,无法显示搜索框,因为吴昊博客走的是https协议,所以浏览器屏蔽了百度站内搜索代码。

全网搜索了很久,几乎就那么两种方法,并且网上的方法也是过去式了,代码还需要调整,而且全部都一模一样的(此处也应该有草泥马奔腾)。

就在一筹莫展时,突然想到为何不用Nginx做个反向代理呢,直接配置个https安全的域名反向代理到http://znsv.baidu.com,这样一切不就解决了。

看到此处,如果你不是小白,根据这个思路你已经知道怎么解决了(但是你还是要看完本文,因为有些问题)!!!

 

通过Nginx反向代理完美解决百度站内搜索不支持https的问题:

1、申请https证书

我这里申请的是阿里的免费证书,申请证书流程这里不细说了,如果不会请百度。

2、Nginx反向代理配置

证书申请好后,开始配置nginx,nginx安装过程略,nginx配置内容如下:

我这里使用so.whsir.com域名反向代理到http://znsv.baidu.com。

3、配置百度站内搜索代码

在https://zn.baidu.com配置好域名,使用嵌入式,PC嵌入1:简约灰,最后查看代码。

方法一:

百度站内搜索默认代码如下:

更改后的百度站内搜索代码:

其中仅是将http://znsv.baidu.com替换成https://so.whsir.com。

以wordpress为例,自定义侧边栏小工具,选择文本(不要选可视化),将代码添加进来并发布。

访问https://blog.whsir.com,不断的刷新,你会发现下图所示内容,偶尔显示搜索框,偶尔不显示,显示搜索框时,浏览器提示非完全安全,不显示搜索框时提示加载不安全脚本。

方法一功能可以实现百度站内搜索了,但是很不稳定,并且浏览器也不显示安全的锁了。

方法二:

通过代码实现

我这里还是通过https://so.whsir.com域名反向代理,只不过代理的后端换成http://zhannei.baidu.com,此时nginx反向代理location内容如下

wordpress侧边栏添加小工具,代码如下,请将以下代码添加到自定义HTML中,value值自行更换下,注意:是添加到自定义HTML中!

以上内容配置完成后平滑重启nginx,wordpress中发布代码内容。

访问https://blog.whsir.com,刷新博客首页发现此时已显示安全的连接

我这里再试下搜索功能,由于在加密的网页中引入了不安全的连接,搜索部分内容无法显示了,其中http://i7.baidu.com/地址显示403,图片无法正常显示,如下图所示

方法二实现绿锁,但是搜索结果图片不显示,你难道会认为这样我就满足了吗,当然是不可能的,于是继续尝试修改!

方法三:

因为nginx反向代理的地址是http://zhannei.baidu.com,于是我想403应该是百度那边的原因。

配置百度站内搜索做CNAME解析,在百度站内搜索结果页管理中,配置CNAME域名,注意我这里使用了一个新的域名。

由于域名托管于阿里云,所以我需要在阿里云域名解析中配置CNAME别名到zhannei.baidu.com,如下图所示

然后还是通过https://so.whsir.com域名反向代理,此时代理的后端地址换成http://search.whsir.com,nginx反向代理location内容如下

wordpress侧边栏自定义HTML中的代码不需要更改,因为我这里只是更换了一个后端的域名。

访问https://blog.whsir.com,刷新博客首页发现此时已显示安全的连接。

继续查看百度站内搜索页,虽然还是没显示绿锁,但是图片已经没问题了,可以看到http://i7.baidu.com状态已显示200

综上几种方法,无疑最后一种是最好的,虽然在搜索页还残留http协议连接,但是图片什么的都可以正常显示了,正常使用百度站内搜索已无问题了。

总结:百度一个https配置就可以搞定的事情,最后饶了这么一大圈,博主也是实属无奈,文章首发于吴昊博客,如果觉得本文帮助到了你,期待你的赞赏

原文链接:独家完美解决百度站内搜索不支持https问题,转载请注明来源!

7