Apache VirtualHost 设置强制 https

Apache VirtualHost setting to force https

试图强制所有流量进入 AWS 上的 https (ec2/Bitnami/Wordpress)。

httpd-vhosts.conf 中的当前设置是...

<VirtualHost *:80>
    ServerName wordpress.example.com
    ServerAlias www.wordpress.example.com
    DocumentRoot "/opt/bitnami/apps/wordpress/htdocs"

    Include "/opt/bitnami/apps/wordpress/conf/httpd-app.conf"
</VirtualHost>
<VirtualHost *:443>
    ...
</VirtualHost>

我可以简单地将 ServerAlias 替换为重定向,例如...

<VirtualHost *:80>
    ServerName wordpress.example.com
    Redirect / https://www.wordpress.example.com
    DocumentRoot "/opt/bitnami/apps/wordpress/htdocs"

    Include "/opt/bitnami/apps/wordpress/conf/httpd-app.conf"
</VirtualHost>
<VirtualHost *:443>
    ...
</VirtualHost>

我认为重定向不仅可以将会话整合到规范 "www" 中,还可以使它们成为 HTTPS。

它会那样工作吗,还是我仍然需要 ServerAlias 指令?

如果需要,ServerAlias 是在重定向之前还是之后?

最后,如果 ServerAlias 出现在重定向之后并且不包括 "https://...",是否允许非 HTTPS 会话?

顺便说一句,我尝试了下面的 Bitnami suggested solution 但它不起作用...

<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/(.*) https://%{SERVER_NAME}/ [R,L]
...
</VirtualHost>

看来您的方向是正确的。我使用的是永久重定向,它完美无缺。

RedirectMatch 永久 ^(.*)$ https://www.wordpress.example.com$1

此外,由于您重定向到 https,因此不需要文档根目录和其他配置。您的所有配置都需要在您的 https 虚拟主机上进行。

对我有用的解决方案是编辑这个文件:

/opt/bitnami/apache2/conf/bitnami/bitnami.conf 

正在添加...

<VirtualHost _default_:80>
  DocumentRoot "/opt/bitnami/apache2/htdocs"
  RewriteEngine On
  RewriteCond %{HTTPS} !=on
  RewriteRule ^/(.*) https://%{SERVER_NAME}/ [R,L]
  ...
</VirtualHost>

根据 Bitnami 的说法,this edit forces all apps running on Bitnami to load in https. Since wordpress is the only app I have running, this solution worked for me. The Bitnami instructions for forcing https just on wordpress对我没有用

此处为 Bitnami 开发人员。您使用的说明是针对使用 Bitnami LAMP 堆栈的。我们将更新 Bitnami Wordpress 等 Application Cloud Images 的文档。在这种情况下,您必须编辑 httpd-app.conf 文件,而不是 httpd-prefix.conf 文件。

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/(.*) https://%{SERVER_NAME}/ [R,L]
RewriteRule /<none> / [L,R]

重新启动 Apache:

sudo /opt/bitnami/ctlscript.sh restart apache

现在将强制重定向。