FeedBurner 与站点 SSL 证书

0 Share

FeedBurner 与站点 SSL 证书

我在 StartSSL 申请了免费证书,为 dallaslu.com 全站强制启用了加密链接,所有 http 方式的访问都会跳转到 https 链接。在 FeedBurner 抓取 feed 时却发生了 400 错误。我启用了 WordPress 的多站点模式,并为 80 和 443 端口分别配置了虚拟主机。只要在 Nginx 配置文件中,在 80 端口的主 ...

我在 StartSSL 申请了免费证书,为 dallaslu.com 全站强制启用了加密链接,所有 http 方式的访问都会跳转到 https 链接。国内的 FeedSky 十分不给力,于是重新切换到了 FeedBurner。在 FeedBurner 抓取 feed 时却发生了 400 错误。解决方案很简单,就是禁止自动跳转。那么如何在全站都跳转到安全链接的情况下,保证 feed 地址提供 http 的访问呢?

我启用了 WordPress 的多站点模式,并为 80 和 443 端口分别配置了虚拟主机。于是我想到了配置多个虚拟主机,但这有可能为日后的维护造成麻烦,并非最好的办法。经过一番尝试,发现只要在 Nginx 配置文件中,在 80 端口的主机中进行判断,来有条件跳转即可:

set $dallaslu_rewrite_to_ssl 0;
if ($host ~ ^(www\.)?dallaslu\.com) {
	set $dallaslu_rewrite_to_ssl 1;
}
if ( $http_user_agent ~ FeedBurner ){
	set $dallaslu_rewrite_to_ssl 0;
}
if ($dallaslu_rewrite_to_ssl = 1){
	rewrite ^(.*) https://dallaslu dosage for prozac.com$1 permanent;
}

思路很简单,以一个变量控制是否跳转,如果浏览器标识是 FeedBurner,则不进行跳转。

Leave a reply

Your email address will not be published.