的WordPress从http反弹至HTTPS和回HTTP,然后终于到https
问题描述:
我的WordPress网站是在WordPress管理https://www.example.com
下Settings/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
替换RewriteCond行,如果我这样做,它永远不会导航到“https:// www.example.com”。它停留在'https:\\ example.com'。它实际上这样做,即使我从htaccess中删除所有内容 – codeNinja
你使用哪一个,有'X-Forwarded-Proto'或'SERVER_PORT'?你也试过另一个吗? – janh
我试过'x-forwarded-proto'。我也尝试了其他。都导致反弹 – codeNinja