使用我的WordPress-Blog,我切换到https。因此,我已将以下代码添加到我的.htaccess-File中。我现在的问题是,我得到的问题是“太多重定向”。感谢您的提示!
域名是子域名:
# Begin Force SSL
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]
# End Force SSL
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
答案 0 :(得分:33)
确保在wp-config.php中定义WP_SITEURL和WP_HOME
define('WP_HOME','https://yourdomain.com');
define('WP_SITEURL','https://yourdomain.com');
并添加此条件以检查wps-config.php中的https是否
if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && 'https' == $_SERVER['HTTP_X_FORWARDED_PROTO'] ) {
$_SERVER['HTTPS'] = 'on';
}
答案 1 :(得分:18)
我使用wp-config.php中的以下代码解决了这个问题
serial
答案 2 :(得分:5)
尝试将前三行更改为:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L]
我相信,除非您尝试转到https://en.example.com/:443,否则{SERVER_PORT}将永远不会返回443。
答案 3 :(得分:5)
我有同样的问题nginx并且必须做以下
在.htaccess
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L]
wp-config.php
中的
define('FORCE_SSL_ADMIN', true);
define('RELOCATE', TRUE);
$_SERVER['HTTPS'] = 'on';
define('WP_HOME', 'https://yourdomain.com');
define('WP_SITEURL', 'https://yourdomain.com');
不要使用下面的nginx,除非你确定它通过HTTPS启用快速cgi,否则它将无效,
if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && 'https' == $_SERVER['HTTP_X_FORWARDED_PROTO'] ) {
$_SERVER['HTTPS'] = 'on';
}
在nginx的错误日志中可能有利于日志调试级别,这就是你如何看待流程。
答案 4 :(得分:3)
确保在WP_SITEURL
处定义WP_HOME
和wp-config.php
define('WP_HOME','https://yourdomain.com');
define('WP_SITEURL','https://yourdomain.com');
并添加此条件以检查wp-config.php上的https
if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && 'https' == $_SERVER['HTTP_X_FORWARDED_PROTO'] ) {
$_SERVER['HTTPS'] = 'on';
}
这很好用
答案 5 :(得分:2)
摘录:在 wp-config.php 文件的开头添加以下代码行可以解决重定向冲突。
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
$_SERVER['HTTPS']='on';
答案 6 :(得分:1)
如果使用Cloudflare和Nginx:
1-转到云端,在页面规则中添加始终使用HTTPS。
2-将以下代码添加到wp-config.php
define('WP_HOME','https://example.com/blog');
define('WP_SITEURL','https://example.com/blog');
if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && 'https' == $_SERVER['HTTP_X_FORWARDED_PROTO'] ) {
$_SERVER['HTTPS'] = 'on';
}
注意:请勿更改数据库中的任何内容并使用隐身模式。
答案 7 :(得分:0)
不是直接的答案,但还有一点要注意的是,某些浏览器将缓存重定向,因此您可能在更改htaccess或wp-config时未看到任何更改。
调试此问题的最佳方法是使用隐身模式。
以上答案对我有用,但是花了很多时间才知道它们实际上是有效的,因为浏览器重定向缓存了!