他们只是使用不同的 Apache 变量来构成重定向的 URL。
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
如果输入了文件名,例如 myfile.php,则第一条规则将获取文件名,并附加重定向,并在重定向中替换 $1,以便您获得 https://somesite.com/myfile.php
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
使用%{HTTP_HOST} 的第二个将从http 标头获取信息,而不是构成用于重定向的URL,因此输入相同的URL http://somesite.com/myfile.php 将被重定向到https://somesite.com/myfile.php
这只是告诉 apache 使用什么进行重定向的问题。使用服务器内部名称或使用浏览器发送的名称。
%{SERVER_NAME}
这是apache中的服务器内部变量,在服务器配置中定义。
%{HTTP_HOST}
这是浏览器在 HTTP 请求标头中发送的内容。这是客户端,而 SERVER_NAME 如果来自服务器配置。
%{REQUEST_URI}
REQUEST_URI 是请求的 URI 的路径组件,例如“/index.html”。这是一个特殊的 Apache 变量。
已经有很多方法可以重定向到https,两者都应该有效。您的选择。