我正在将我的协议从http更改为https。
我已将wordpress安装为子目录(例如:www.example.com/blog)
我将服务器置于负载平衡器后面,对负载平衡器的请求是加密的,但对服务器的请求不是加密的。
我更新了home
和siteurl
反映https地址的参数。我将以下代码添加到wp-config.php
文件:
if (strpos($_SERVER[\'HTTP_X_FORWARDED_PROTO\'], \'https\') !== false)
$_SERVER[\'HTTPS\']=\'on\';
出于某种原因,当我转到url时
https://www.example.com/blog, 发生以下重定向:
https://...blog ->
http://...blog/http://...blog/ -> https://...blog/
我可以接受一个重定向(添加斜杠的重定向),但我不明白为什么它会重定向到http://
住址我在设置中没有看到仍然引用的任何内容http://
.
为什么要这样做?
我已尝试清除浏览器的缓存。我也有一个。htaccess文件,但我怀疑它与此无关,因为即使在.htaccess
文件已注释
有人仍然发现htaccess
文件相关:我在htaccess
文件:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule . https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]
用于将http重定向到https
和
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
我想是为了添加斜杠。
虽然第一条规则不相关(因为我要直接到https
地址)。评论第二条规则对问题没有影响。
在我的设置中是否有其他地方需要更新wordpress,以了解我正在使用https
?
谢谢
SO网友:mayersdesign
您需要更新数据库中的baseURL。即选项\\u值siteurl 和home 在选项表中。
下面的代码将有力地为您做到这一点。注意前缀,我在这里指出的是“wp\\u0”,但它当然不应该是!:)当然,您还需要更改网站名称:
UPDATE wp_options SET option_value = replace(option_value, \'http://www.example.com/blog\', \'https://www.example.com/blog\') WHERE option_name = \'home\' OR option_name = \'siteurl\';
UPDATE wp_posts SET guid = REPLACE (guid, \'http://www.example.com/blog\', \'https://www.example.com/blog\');
UPDATE wp_posts SET post_content = REPLACE (post_content, \'http://www.example.com/blog\', \'https://www.example.com/blog\');
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, \'http://www.example.com/blog\',\'https://www.example.com/blog\');