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

Использование mod_headers для переопределения mod_alias

Я пытаюсь использовать mod_headers изменить Location заголовки, которые отправляются через mod_alias используя Redirect директива, но ни одна из них не переписывается. У меня в моем http.conf;

Header edit Location //example.com //example.com.dev

И в пределах .htaccess файл у меня есть:

Redirect temp /foo http://example.com/

Но заголовки никогда не меняются. Я могу подтвердить, что он загружает модуль и читает директивы, добавив следующее непосредственно под другой директивой:

Header set FOOBAR bazbax

И я вижу, как появляется новый заголовок.

Что мне делать, чтобы это работало правильно?

в документация по mod_headers, в Директиве заголовка говорится следующее:

Необязательный аргумент условия определяет, с какой внутренней таблицей заголовков ответов будет работать эта директива. Другие компоненты сервера могли хранить свои заголовки ответов либо в таблице, которая соответствует успешному выполнению, либо в таблице, которая соответствует всегда. «Всегда» в этом контексте означает, будут ли добавленные вами заголовки отправляться как при успешном, так и при неудачном ответе, но если ваше действие является функцией существующего заголовка, вам придется читать дальше, чтобы узнать о дальнейших сложностях.

Значение по умолчанию onsuccess, возможно, потребуется изменить на всегда при обстоятельствах, подобных тем, которые перечислены ниже. Также обратите внимание, что повторение этой директивы с обоими условиями имеет смысл в некоторых сценариях, потому что всегда не является надмножеством onsuccess по отношению к существующим заголовкам:

  • Вы добавляете заголовок к неуспешному (не 2xx) ответу, например к перенаправлению, и в этом случае в окончательном ответе используется только таблица, соответствующая always.

...

Скорее всего, это проблема, с которой вы столкнулись, поскольку вы отправляете ответ 3xx через mod_alias.