从一个安装中提供HTTP和HTTPS

时间:2012-07-18 作者:Eric Oliver

我已经安装了WordPress,它通过HTTP和HTTPS提供内容。站点URL配置为“http://www.example.com“。这适用于大多数情况-如果有人在”https://www.example.com/page“该页面通过HTTPS提供。

然而,我面临的挑战是,有许多WordPress模板函数可以拉取站点URL(如get\\u bloginfo(\'stylesheet\')),当它们这样做时,它们会在返回的结果中包含“http://”。类似地,插入到WYSIWYG编辑器中的图像具有“http://www.example.com...“路径硬编码。

我真正想做的是找到一种方法,将基本站点URL定义为“//www.example.com”,这将有希望使一切正常工作。但是,WordPress管理字段不支持此操作。

有人知道怎么做吗?

2 个回复
SO网友:Jarod Thornton

一个简单的解决方案是使用。htaccess规则。

#Redirect HTTP to HTTPS
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

SO网友:BillK

如果您不想强制使用HTTPS(或重定向所有非HTTPS请求),可以如下处理帖子中的URL:

function content_ssl($content) {
  if (isset($_SERVER["HTTPS"]))
    $content = ereg_replace("http://" . $_SERVER["SERVER_NAME"], "https://" . $_SERVER["SERVER_NAME"], $content);
  return $content;
}
add_filter(\'the_content\', \'content_ssl\');
WordPress本身处理协议匹配。然而,有些插件没有。

结束

相关推荐

WP_REMOTE_GET不支持安全连接HTTPS?

我在使用非安全连接时查询twitter api http://it works fine no wp\\u error(but twitter exceed limit error),但当我在浏览器中使用https://it works时,我可以看到json和xml格式,但wp\\u remote\\u get有一个错误,我尝试使用第二个参数数组(\'sslverify=>false),但它也不起作用?那么,是我做错了什么,还是wp\\u remote\\u get无法使用https?代码如下:$r