Attention
1.百度已经解决了这个问题(http://zhanzhang.baidu.com/wiki/494),然而不支持的蜘蛛还是存在的(比如有道等等)。
2.关于设置、获取SSL证书的方法不详细说明,请自行百度。(当然如果真的有要求会写的~)
3.有小伙伴反应cPanel自带的文件管理器不显示.htaccess文件,解决方法是点击文件管理器右上角的设置,勾选“显示隐藏文件(dotfiles)”即可。一般.htaccess文件位于网站根目录内,默认隐藏。
兼容全站https和部分国内引擎蜘蛛一直是让很多人头疼的问题。毫无疑问全站https十分的安全,但是却会影响部分国内引擎蜘蛛的抓取。本片教程就是能做到兼顾两方。
前提:输入http和https都可以访问您网站,而http访问不会自动跳转https。您可以访问您网站的.htaccess文件。
方法:更改.htaccess文件。
首先就是要做到访问全都跳转为https,做到这点不难,网上教程也多的是,所以不详细介绍。唯一要注意的是,https的跳转要排除部分国内引擎蜘蛛。所以我们要增加一个跳转条件(高亮行)。注意,请将www.example.com换成您的网站地址。
#HTTPS的重定向 RewriteCond %{HTTP_USER_AGENT} !(360spider|haosouspider|youdaobot|yodaobot|sogou|sohu-search|easouspider|yisouspider) [NC] RewriteCond %{SERVER_PORT} !^443$ RewriteCond %{HTTP_USER_AGENT} !MSIE/[1-8]\. [NC] RewriteCond %{HTTP_HOST} www.example.com RewriteRule ^.*$ https://www.example.com%{REQUEST_URI} [L,R=301]
在你的网站.htaccess文件内添加上述内容(在“RewriteEngine On”行之后添加)。现在可以测试一下了。在chrome中按下F12打开调试窗口。
在左下角选择“Network Conditions”Tab页,在下方的“User agent spoofing”内勾选“Custom user agent”。
在下拉选项中选择“Other”,并在下面的编辑框输入部分国内引擎蜘蛛的UA来模拟部分国内引擎蜘蛛的抓取。
百度蜘蛛的UA:
Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
有道蜘蛛UA:
Mozilla/5.0 (compatible; YoudaoBot/1.0; YoudaoBot)
然后在网址栏输入你的网站网址(http访问),如果没有跳转到https访问就说明成功了。并且当选择“Auto user agent”的时候,访问你的网站网址(http访问)可以跳转到https访问,那么第一阶段就成功了。
那么问题来了,如果部分国内引擎蜘蛛https访问怎么破?虽然可能性不大,但是为了保险,我们要再加入以下内容到.htaccess文件里。注意,请将www.example.com换成您的网站地址。
#跳转http判断 RewriteCond %{HTTP_USER_AGENT} (360spider|haosouspider|youdaobot|yodaobot|sogou|sohu-search|easouspider|yisouspider) [NC] RewriteCond %{SERVER_PORT} ^443$ RewriteRule ^.*$ http://www.example.com%{REQUEST_URI} [L,R=301]
注意高亮行,如果没有这行的话将会导致网页重定向循环,请务必注意。现在可以再次测试了,在刚刚的Tab内重新勾选“Custom user agent”,并尝试https访问,现在是不是成功跳转到http访问了?
最后归纳一下,在.htaccess文件内添加以下内容(在“RewriteEngine On”行之后添加):
#HTTPS的重定向 RewriteCond %{HTTP_USER_AGENT} !(360spider|haosouspider|youdaobot|yodaobot|sogou|sohu-search|easouspider|yisouspider) [NC] RewriteCond %{SERVER_PORT} !^443$ RewriteCond %{HTTP_USER_AGENT} !MSIE/[1-8]\. [NC] RewriteCond %{HTTP_HOST} www.example.com RewriteRule ^.*$ https://www.example.com%{REQUEST_URI} [L,R=301] #跳转http判断 RewriteCond %{HTTP_USER_AGENT} (360spider|haosouspider|youdaobot|yodaobot|sogou|sohu-search|easouspider|yisouspider) [NC] RewriteCond %{SERVER_PORT} ^443$ RewriteRule ^.*$ http://www.example.com%{REQUEST_URI} [L,R=301]
注意,请将www.example.com换成您的网站地址。
那么就是这样,是不是很简单呢?有什么评论或者问题请在下方回复,或到页面右上角的留言板回复。真不行就直接发我邮箱吧:admin@kaaass.net。我会统一在周末回复。
评论