我正在尝试为我的网站强制使用 https over HTTP 协议。我已成功强制使用http://example.com
=>https://example.com
和所有博客文章 URL。
但是,当我尝试访问时https://example.com/wp-admin
,它说example.com
重定向您太多次ERR_TOO_MANY_REDIRECTS
。
请注意:
- 我的本地开发和 AWS Elastic Beanstalk 连接到同一个数据库。
localhost
并且localhost/wp-admin
运行良好,可以成功登录管理面板。- 我已经设置了一个环境变量
WP_ENV
来确定它是本地环境还是生产环境。
这是我的文件设置wp-config.php
。
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
$_SERVER['HTTPS'] = 'on';
/** HTTPS */
if (getenv('WP_ENV') == 'production'){
define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
define('WP_HOME', 'https://example.com');
define('WP_SITEURL', 'https://example.com');
}
if(getenv('WP_ENV') == 'development'){
/* Http only. */
define('WP_HOME', 'http://localhost');
define('WP_SITEURL', 'http://localhost');
}
这是我的 .htacess
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
<If "%{HTTPS} == 'on'">
# For a site running on port 80 (http)
RewriteCond %{SERVER_PORT} ^80$
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^wp-(admin|login|register)(.*) https://example.com/wp-$1$2 [L]
</If>
RewriteCond %{SERVER_PORT} ^80$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress