嵌套WordPress博客在ELB后面的EC2上的SSL问题

时间:2018-12-19 21:57:34

标签: wordpress ssl amazon-ec2 amazon-elb

我正在将网站迁移到AWS,并使用ELB启用SSL / TLS在Linux EC2实例上启动并运行所有内容。除了网站的WordPress部分位于子目录(例如www.mysite.com/blog)中的问题外,一切正常(codeigniter,phpbb3,osticket)正常工作。通过http访问博客的某些部分,因此我收到“混合内容”消息。尝试登录博客的管理部分时,我还会获得无限重定向。

为了使https工作,我遵循了Amazon的说明并将推荐的代码添加到我的httpd.conf文件中。

但是,根据此博客(https://blog.lawrencemcdaniel.com/wordpress-aws-elb-ssl)的介绍,WordPress无法解决该问题。

AMAZON RECOMMENDED CODE
    <VirtualHost *:80>
        RewriteEngine On
        RewriteCond %{HTTP:X-Forwarded-Proto} =http
        RewriteRule .* https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]
    </VirtualHost>

我认为必须有一种方法可以将重写规则应用于除一个目录之外的所有目录,以便可以遵循WordPress的特定说明,但是我似乎找不到任何信息。 (我可能只是一个贫穷的搜索者!)。我愿意解决这个问题。

----编辑----

此后,我尝试了以下操作(均无效):

  1. 将httpd.conf中的重写规则更改为

    RewriteRule!^ blog https://% {HTTP_HOST}%{REQUEST_URI} [L,R = permanent]

并添加

define('WP_HOME','https://www.example.com/blog');
define('WP_SITEURL','https://www.example.com/blog');

在wp配置文件中。

  1. 从httpd.conf文件中完全删除VirtualHost代码,并将WP_HOME和WP_SITEURL保留在wp配置文件中

1 个答案:

答案 0 :(得分:0)

好的。这就是最终对我有用的东西。

在您的httpd.conf文件中使用Amazon推荐的代码

<VirtualHost *:80>
    RewriteEngine On
    RewriteCond %{HTTP:X-Forwarded-Proto} =http
    RewriteRule .* https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]
</VirtualHost>

将以下内容添加到wp-config.php文件中

define('WP_HOME','https://www.yoursitename.com/yourdirectory');
define('WP_SITEURL','https://www.yoursitename.com/yourdirectory');
define('FORCE_SSL_ADMIN', true);

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
    $_SERVER['HTTPS'] = 'on';