Назад | Перейти на главную страницу

Есть ли разница между переменными HTTP: Host и HTTP_HOST в mod_rewrite?

Есть ли разница (небольшая или нет) между следующими условиями перезаписи:

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} может повлечь за собой штраф за поиск?

Это синонимы. Посмотреть цитаты из документация по 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.