的WordPress从http反弹至HTTPS和回HTTP,然后终于到https

问题描述:

我的WordPress网站是在WordPress管理https://www.example.comSettings/general的WordPress从http反弹至HTTPS和回HTTP,然后终于到https

我使用Simple SSL插件。这是我的.htaccess

<IfModule mod_rewrite.c> 
RewriteEngine on 
#RewriteCond %{HTTP_HOST} =example.com 
#RewriteRule (.*) https://www.example.com/$1 [R=301,L] 
RewriteCond %{HTTP_HOST} ^example.com[nc] 
RewriteRule ^(.*)$ http://www.example.com/$1 [r=301,nc] 
RewriteCond %{SERVER_PORT} 80 
RewriteCond %{REQUEST_URI} wp-admin 
RewriteRule ^(.*)$ https://www.example.com/wp-admin/ [R,L] 
</IfModule> 



# BEGIN rlrssslReallySimpleSSL rsssl_version[2.5.22] 
<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteCond %{HTTP:X-Forwarded-Proto} !https 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
</IfModule> 
# END rlrssslReallySimpleSSL 

出于某种原因,当去到example.com它从基于HTTP> https->基于HTTP> HTTPS

example.com 
https://example.com 
http://www.example.com 
https://www.example.com 

3名重定向如果X-转发 - 协议是决定是否请求的方式通过HTTPS来不来,我相信你可以用这个代替一切:

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteCond %{HTTP:X-Forwarded-Proto} !https 
RewriteRule ^(.*)$ https://www.example.org%{REQUEST_URI} [R=301,L] 
</IfModule> 

把它放在.htaccess中的WP块之前。如果SSL直接在您的Apache中处理,请用RewriteCond %{SERVER_PORT} 80

+0

替换RewriteCond行,如果我这样做,它永远不会导航到“https:// www.example.com”。它停留在'https:\\ example.com'。它实际上这样做,即使我从htaccess中删除所有内容 – codeNinja

+0

你使用哪一个,有'X-Forwarded-Proto'或'SERVER_PORT'?你也试过另一个吗? – janh

+0

我试过'x-forwarded-proto'。我也尝试了其他。都导致反弹 – codeNinja