.htaccess setEnv as% {HTTP_HOST} - PullRequest
       44

.htaccess setEnv as% {HTTP_HOST}

1 голос
/ 05 марта 2020

возможно ли выполнить htaccess SetEnv с %{HTTP_HOST}?

Я пытаюсь сделать это так:

SetEnv HOSTNAME %{HTTP_HOST}

, но это не работает. я проверил это с настройкой как

SetEnv HOSTNAME localhost.work

, и это работает. Так что это просто моя конфигурация, которая на самом деле не работает.

Надеюсь, кто-нибудь подскажет мне, почему это не работает.

Заранее спасибо.

1 Ответ

3 голосов
/ 05 марта 2020

SetEnv (mod_env) - для установки простых жестко заданных пар имя / значение. Вам нужно использовать SetEnvIf (mod_setenvif), если вы хотите установить переменную var, основанную на элементах запроса.

Например, чтобы задать для env var HOSTNAME значение Host HTTP заголовок запроса:

SetEnvIf Host "(.*)" HOSTNAME=$1

Директива SetEnvIf устанавливает переменную среды условно ... если регулярное выражение ((.*)) соответствует первому аргументу (ie. заголовок HTTP Host) затем он устанавливает переменную env.

Host ссылается на заголовок HTTP-запроса Host (аналогично серверной переменной HTTP_HOST). (.*) является регулярным выражением захвата, с которым это соответствует, а $1 является обратной ссылкой на этот захваченный шаблон.

Ссылка:
https://httpd.apache.org/docs/2.4/mod/mod_setenvif.html#setenvif

...