您能解释下面两个.htaccess重定向之间的区别吗?
第一个重定向是我最常使用的重定向,但是它在最近的站点上不起作用(重定向太多–即使我没有进行任何设置),但是第二个重定向有效,我很好奇。
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteEngine On
RewriteCond %{ENV:HTTPS} !=on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
答案 0 :(得分:1)
第一个RewriteCond检查服务器设置的HTTPS标志(选中此link。滚动到服务器变量)。
第二个RewriteCond检查一个环境变量,该变量可以由先前的RewriteRule设置(有关设置环境变量,请参见Setenvvars)。
您尝试使用%{HTTPS}!= on吗?
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
注意:这两个链接均参考apache文档。根据您使用的HTTP服务器,这可能不起作用。