1

我想确保我的所有流量都在 ssl 上,即使他们输入 http。但我也希望它传递文件夹,所以 mod_rewrite 仍然可以工作。我尝试了这个糟糕的例子,但它不起作用。基本上我如果他们输入http://mydomain.com/apage它将重定向到https://mydomain.com/apage

服务器:Apache2,LAMP 堆栈。

.htaccess

RewriteEngine on

RewriteCond %{HTTPS} !=on
RewriteRule ^(/) https://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L]

我愿意为 Apache 调整虚拟主机文件,但我以前没有看到它这样做过。这是我对 ssl 托管的第一次冒险。

4

2 回答 2

1

如果您可以访问 httpd.conf,我建议不要使用 mod_rewrite 或 htaccess。如果您想强制所有用户使用 https(一个好主意),您可以在 httpd.conf 中添加如下内容:

<虚拟主机 1.2.3.4:80>

    ServerName SSL.EXAMPLE.COM
    CustomLog /var/log/httpd/EXAMPLE.access_log combined
    ErrorLog /var/log/httpd/EXAMPLE.error_log

    Redirect / https://ssl.example.com/ 

</虚拟主机>

<虚拟主机 1.2.3.4:443>

ServerName ssl.example.com
DocumentRoot /var/www/html
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite HIGH:MEDIUM
.
.
. 

</虚拟主机>

<目录/var/www/html>

#If all else fails, this will ensure nothing can get in without being encrypted.
SSLRequireSSL 

</目录>

于 2013-03-11T21:00:25.840 回答
1

只需替换httphttps

RewriteCond %{HTTPS} !on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
于 2013-03-11T21:41:27.527 回答