即使他们键入http,我也要确保我的所有流量都在ssl上。但我也希望它传递文件夹,所以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主机。
答案 0 :(得分:1)
如果您有权访问httpd.conf,我建议不要使用mod_rewrite或htaccess。 如果你想强制所有用户使用https(一个好主意)你可以在httpd.conf中添加这样的东西:
< VirtualHost 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/
< /虚拟主机>
< VirtualHost 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
< /目录>
答案 1 :(得分:1)
只需将http
替换为https
RewriteCond %{HTTPS} !on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]