我找到了2个不同的代码段强制HTTPS在我的网站:差异化的2阿帕奇
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
和
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
我敢肯定,从他们的httpd都工作(一个人的Wiki和另一位来自SSL购物者)。有人能够解释他们如何执行重定向的区别吗?
我找到了2个不同的代码段强制HTTPS在我的网站:差异化的2阿帕奇
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
和
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
我敢肯定,从他们的httpd都工作(一个人的Wiki和另一位来自SSL购物者)。有人能够解释他们如何执行重定向的区别吗?
他们只是用不同的Apache变量来弥补重定向的URL。
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
这第一条规则,如果一个输入诸如myfile.php文件名,并让你得到https://somesite.com/myfile.php
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
使用%{HTTP_HOST}
第二届一个在重定向它取代$1
追加重定向将抓取来自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
两者都应该工作许多方面。你的选择。
谢谢你提供一个非常完整和清晰的答案! – Eric
欢迎,没问题。 –