在 AWS Elastic Beanstalk 上托管的 Wordpress 上使用 HTTPS

在 AWS Elastic Beanstalk 上托管的 Wordpress 上使用 HTTPS

我正在尝试为我的网站强制使用 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

相关内容