Использовать другой файл .htaccess в зависимости от сервера, на котором выполняется веб-приложение?

#php #.htaccess

#php #.htaccess

Вопрос:

У меня есть тестовый сервер и производственный сервер. Мне нужны разные файлы .htaccess для тестирования и производства. При тестировании я хочу, чтобы PHP отображал ошибки, но, конечно, я не хочу этого при производстве.

Я знаю, что могу установить «ошибки отображения» и в PHP, но тогда я должен делать это в каждом скрипте, который я запускаю. Делать это с :

 php_flag display_errors On
  

в .htaccess в корневой папке намного проще.

Итак, мой вопрос в том, как я могу создать 2 разных файла .htaccess и в зависимости от сервера автоматически использовать правильный?

Комментарии:

1. Почему бы вам просто не изменить php.ini?

2. Разве вы не можете просто использовать два разных файла? Сохраните его на своем локальном компьютере и убедитесь, что вы не перезаписываете им текущий файл…

3. @DisgrunteldGoat: именно этим я сейчас и занимаюсь. Но тогда вам всегда придется быть осторожным при развертывании. Должно быть лучше, если это автоматически, что я уже использую для настроек базы данных и т. Д (config.php это позволяет найти имя сервера / домена, на котором оно выполняется).

4. @halfdan: Я не могу просто изменить php.ini, поскольку на этом сервере есть и другие домены, некоторые тестовые, а некоторые производственные

Ответ №1:

Apache использует директиву конфигурации для поиска этих файлов:

 AccessFileName .htaccess
  

Итак, если вы измените свой сервер разработки с

 AccessFileName .htaccessdev
  

в /etc/apache2.conf этом случае вы можете обрабатывать 2 версии настроек, одну для производства в .htaccess и одну для разработки в .htaccessdev.
Фильтры безопасности обычно работают нормально и определяются таким образом:

 <Files ~ "^.ht">
  Order allow,deny
  Deny from all
</Files>
  

который охватывает оба имени.