我的博客是强制使用https加密链接的,为什么呢?因为我不想自己写完东西还自我审察一边,比如把“敏感词”写成“敏_|感_|词”。
但是这样也带来了一些问题,除google以外的搜索引擎全都不收录了。然后找到了一个挺不错的方法,把蜘蛛的user-agent重定向到http <link>
先修改.htaccess文件
判断UA并将搜索引擎定向到http,将一般访客定向到https
1 | RewriteEngine On |
添加force-ssl插件
1 | /* Plugin Name: Force SSL Plugin URI: http://www.almosteffortless.com/wordpress/force-ssl/ Description: For those will an SSL certificate, this plugin forces an HTTPS connection for security purposes. Version: 1.0 Author: Trevor Turk */ function force_ssl() { if($_SERVER["HTTPS"] != "on") { if ($_SERVER["REQUEST_URI"] != "/blog/feed/") { if (get_naps_bots() ==false) { $newurl = "https://" . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"]; wp_redirect($newurl); exit(); } } } } function get_naps_bots() { $useragent = strtolower($_SERVER['HTTP_USER_AGENT']); if (strpos($useragent, 'baiduspider') !== false){ return 'baiduspider'; } if (strpos($useragent, 'googlebot') !== false){ return 'googlebot'; } if (strpos($useragent, 'soso') !== false){ return 'soso'; } if (strpos($useragent, 'bing') !== false){ return 'bing'; } if (strpos($useragent, 'yahoo') !== false){ return 'yahoo'; } if (strpos($useragent, 'sohu-search') !== false){ return 'Sohubot'; } if (strpos($useragent, 'yodao') !== false){ return 'yodao'; } if (strpos($useragent, 'robozilla') !== false){ return 'Robozilla'; } if (strpos($useragent, 'msnbot') !== false){ return 'msnbot'; } return false; } add_action('plugins_loaded', 'force_ssl'); |
保存 force-ssl.php 上传到/wp-content/plugins/force-ssl
修改wp-settings.php
添加:
1 | function fix_ssl_siteurl($url) { |
这样就好了,自己改了GoogleBot的UA试了下效果,成功了。
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
等过两天再看看搜索引擎收录情况吧 :-P