正确的 Apache 重定向从 http 到 https

正确的 Apache 重定向从 http 到 https

我在我的服务器上为新网站设置了一个新的虚拟主机,但尽管它的设置与我的原始网站完全相同,但它的行为却很奇怪。

简单来说,我希望所有请求都重定向到 HTTPS。在我的主站点(工作站点)上,我在配置中指定了这一点VirtualHost,并且在.htaccess我指定了一条附加规则以允许短 URL。具体来说,非工作站点上的问题是,如果我尝试转到example.com/url,重定向将转到并从 URL 中https://example.comurl删除必要的内容。/

我将确切的配置从工作站点复制到新VirtualHost文件.htaccess,所以我不确定为什么它在新站点上不起作用。我的两个站点的 DNS 记录都使用 A 记录指向它,没有重定向或 DNS 级别发生任何事情。我尝试在下面的代码行/末尾放置一个Redirect,但问题没有解决。服务器是 Ubuntu 14.04,Apache 是版本 2.4.7。两个站点都是单独的域名,使用单独的.conf文件,但它们托管在同一台服务器上,具有相同的 IP 地址。我该如何解决这个问题?

相关代码如下VirtualHost

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    Redirect permanent / https://example.com
</VirtualHost>

并且.htaccess

RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule !.*\.html$ %{REQUEST_FILENAME}.html [L]

如果它有帮助/重要,这是我的 VirtualHost 文件中的 SSL 配置,尽管它位于文件的最开始,位于所有其他指令之外:

SSLCipherSuite AES128+EECDH:AES128+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
Header always set Strict-Transport-Security "max-age=63072000; includeSubdo$
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff

SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"

VirtualHost这是专门针对该网站的配置:

<VirtualHost *:443>
    ServerName example.com
    ServerAdmin [email protected]
    DocumentRoot /var/www/example
    ErrorLog ${APACHE_LOG_DIR}/errorexample.log
    Options -Indexes

    SSLEngine on
    SSLCertificateFile /etc/ssl/example/examplecert.crt
    SSLCertificateKeyFile /etc/ssl/example/examplekey.key
    SSLCertificateChainFile /etc/ssl/chain/class1.pem
</VirtualHost>

答案1

要重定向到 HTTPS:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

但是你需要有一个用于 SSL 的虚拟主机:

NameVirtualHost *:443
<VirtualHost *:443>
    ServerName example.com
    ServerAlias www.example.com
    SSLEngine on
    SSLCertificateFile    /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key
</VirtualHost>

笔记:你必须创建一个 SSL 证书...但是很棒的教程为了这!

相关内容