我尝试使用.htaccess
将所有流量发送到https
。我在这个答案中使用了这个例子:Need to redirect all traffic to https
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
这并不是为了重定向任何东西。我把它放在var/www
但它似乎没有任何效果。我做错了什么?
答案 0 :(得分:4)
在重写规则结束时尝试[R,L]:
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
R重定向到提供的链接,如果满足条件,L会中断流程。 作为参考,您可以看到:
答案 1 :(得分:3)
如果这是您在htaccess文件中的唯一规则,并且它在您的文档根目录中,那么您需要检查一些内容,因为规则没问题。
确保已加载mod_rewrite。 httpd.conf
文件中应该有一行看起来像:
LoadModule rewrite_module modules/mod_rewrite.so
确保它没有注释。
确保您的htaccess文件所在的目录(应该是您的文档根目录)允许通过htaccess覆盖服务器设置。在您的vhost或服务器配置中,应该有
的内容<Directory "/var/www/">
AllowOverride All
... (some other stuff)
</Directory>
确保AllowOverride
至少为FileInfo
确保您的文档根目录实际上是您的htaccess文件所在的位置。您的vhost配置应该有如下行:
DocumentRoot /var/www/
确保文档根目录适用于正确的vhost。如果您有SSL和非SSL的单独vhost,请确保htaccess文件位于非SSL vhost 的文档根中。