HTTP-сервер Apache mod_alias
обеспечивает Redirect
директива, которая отлично подходит для простых перенаправлений, например следующего:
# Redirect login to https
Redirect permanent /login https://www.example.org/login
Хотя многие администраторы используют mod_rewrite
для перенаправления документация Apache по адресу Когда не использовать mod_rewrite предполагаю, что в целом mod_alias
предпочтительнее mod_rewrite
. Я бы хотел использовать mod_alias
Больше.
Могу ли я использовать Redirect
с участием Переменные Apache Такие как ServerName
? Например, чтобы обеспечить доступность определенного контента только по HTTPS, я хотел бы сделать что-то вроде этого:
Redirect permanent /login https://%{SERVER_NAME}/login
Redirect permanent /special-project-1 https://%{SERVER_NAME}/special-project-1
Redirect permanent /special-project-2 https://%{SERVER_NAME}/special-project-2
Ни то, ни другое не работает, а буквальная строка %{SERVER_NAME}
печатается в ответе:
host% curl http://www.example.org/login
...
302 Found
The document has moved <a href="https://%{SERVER_NAME}/login">here</a>.
Разрешены ли переменные Apache с mod_alias
директивы? Доступны ли переменные с другим синтаксисом?
Я считаю, что здесь есть ответ на аналогичный вопрос: https://serverfault.com/a/415796/337307
@shanemadden написал:
Ты не можешь. Redirect может обрабатывать простые перенаправления, когда вы отправляете клиента на одно конкретное имя, но не имеет возможности выполнять сложные подстановки (не считая того факта, что% {HTTP_HOST} зависит от mod_rewrite).
Просто придерживайтесь mod_rewrite. mod_alias не может делать то, что вам нужно.