![mod_rewrite 的 HTTP:Host 和 HTTP_HOST 变量之间有什么区别?](https://linux22.com/image/796798/mod_rewrite%20%E7%9A%84%20HTTP%3AHost%20%E5%92%8C%20HTTP_HOST%20%E5%8F%98%E9%87%8F%E4%B9%8B%E9%97%B4%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB%EF%BC%9F.png)
以下重写条件之间是否存在任何差异(细微或其他):
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.