mod_rewrite 的 HTTP:Host 和 HTTP_HOST 变量之间有什么区别?

mod_rewrite 的 HTTP:Host 和 HTTP_HOST 变量之间有什么区别?

以下重写条件之间是否存在任何差异(细微或其他):

RewriteCond %{HTTP_HOST} ^www.mysite.co.uk$ 

RewriteCond %{HTTP:Host} ^www.mysite.co.uk$ 

在第二个示例中,我通过指定 HTTP 标头名称来访问主机名:Host

从表面上看,它们的行为似乎完全一样,如果我出现将日志重写为3日志文件显示相同的活动。

只是?%{HTTP_HOST}的同义词%{HTTP:Host},例如,%{HTTP_HOST}已经提前填充/绑定,而%{HTTP:Host}可能会招致查找惩罚 ?

答案1

它们是同义词。参见引文mod_rewrite 文档以下:

关于服务器变量如HTTP_HOST

These variables all correspond to the similarly named HTTP MIME-headers,
C variables of the Apache server or struct tm fields of the Unix system.
Most are documented elsewhere in the Manual or in the CGI specification.

关于HTTP:variable

%{HTTP:header}, where header can be any HTTP MIME-header name, can always
be used to obtain the value of a header sent in the HTTP request.

相关内容