.htaccess в нескольких средах
Я знаю, что подобные вопросы задавались ранее, но я не нашел действительно конкретных ответов для своей ситуации.
У меня есть сайт ExpressionEngine, работающий в нескольких средах (локальная, dev, производственная), и для каждой из этих сред нужны разные правила .htaccess:
Все среды
Удалить index.phpУстановить файл 404Set 301 Redirectsразвитие
Защита паролем с помощью .htpasswdПринудительный протокол HTTPSЗапрет индексирования поисковой системы сX-Robots-Tagпроизводство
Принудительный протокол HTTPSПеренаправление поддоменов без www на wwwМестный
Нет уникальных правил.Я видел много примеров того, как вы можете установить конкретные среды для каждого модуля. подобноRewriteCond %{REQUEST_HOST} ^dev.myurl.com
для модуля mod_rewrite итакие трюки для требований .htpasswd.
Но что я действительно предпочел бы, так это установить глобальные переменные среды, а затем повторно использовать эти переменные в файле .htaccess для каждой среды. Чтобы использовать псевдо-Javascript в качестве примера, что-то вроде:
var local = 'mysite.local';
var development = 'dev.mysite.com';
var production = 'www.mysite.com';
// Global .htaccess rules
if(environment == local){
// Local environment .htaccess rules
}
if(environment == development){
// Development environment .htaccess rules
}
if(environment == production){
//Production envirotnment .htaccess rules
}
Таким образом, все правила, относящиеся к среде, сгруппированы вместе, образуя действительно чистый файл, и при изменении среды необходимо изменить только одну переменную.
Я видел несколько ссылок на изменение настроек в конфигурационных файлах Apache, но, очевидно, это нереальный вариант, если я имею дело со сторонними хостами.
Так что это заоблачное размышление, или это можно сделать?