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