Кажется, это должно быть легко, но я не могу понять синтаксис. В 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"
Все непроверено.
Не уверен в первом, но второй и третий должны работать.