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

Как динамически установить заголовок HTTP в Apache 2.2?

Кажется, это должно быть легко, но я не могу понять синтаксис. В Apache я хочу использовать значение существующего заголовка запроса, чтобы установить новый заголовок запроса. Какой-то простой нерабочий код, иллюстрирующий то, что я хотел бы сделать:

RequestHeader set X-Custom-Host-Header "%{HTTP_HOST}e" 

В идеале это должно было бы сделать новый HTTP-заголовок в запросе под названием «X-Custom-Host-Header», который содержит значение существующего заголовка Host. Но это не так. Возможно, мне нужно сначала скопировать существующий заголовок в переменную среды? (Если так, я тоже не могу понять, как это сделать.)

Мне кажется, что я упускаю что-то очевидное, но я просмотрел документы Apache и не могу понять этого. Спасибо за любую помощь.

В FOOBAR в %{FOOBAR}e должен быть переменной среды, но HTTP_HOST переменная сервера.

Если вы действительно этого хотите, вы можете попробовать:

RewriteRule (.*) $1 [E=custom_host:%{HTTP_HOST}]
RequestHeader set X-Custom-Host-Header "%{custom_host}e"

или

RewriteCond %{HTTP_HOST} (.*)
RewriteRule (.*) $1 [E=custom_host:%1]
RequestHeader set X-Custom-Host-Header "%{custom_host}e"

или

SetEnvIf Host (.*) custom_host=$1
RequestHeader set X-Custom-Host-Header "%{custom_host}e"

Все непроверено.

Не уверен в первом, но второй и третий должны работать.