Задний план
httpd.conf
установлен на AllowOverride None
на /
Мы подошли к тому моменту, когда нам нужно настроить отдельные страницы и приложения, внешние по отношению к нашему унаследованному приложению. Мы хотели бы, чтобы они располагались в подкаталоге общей папки.
Некоторым из этих новых приложений требуются файлы .htaccess.
Вопросы
<Directory>
директива для каждого каталога в httpd.conf
?.htaccess
файлы в каждом каталоге приложенияОбщий вопрос довольно широкий, но я сосредоточусь на ваших конкретных вопросах:
- Можно ли иметь директиву для каждого каталога в httpd.conf?
Да, это возможно.
- Лучше ли это, чем размещение файлов .htaccess в каждом каталоге приложения?
Они служат разным целям. <Directory>
административно определяет функциональность и может ограничивать то, что ваш пользователь может делать с .htaccess
файл. Для вашей ситуации (сплоченная команда), возможно, имеет смысл быть более либеральным в вашей AllowOverride
использование в процессе разработки.
Как только вы приблизитесь к производству, имеет смысл вернуться к нему и уменьшить его. Бытует мнение, что вы хотите, чтобы ваша среда разработки была максимально приближена к производственной, но пока вы изучаете свои решения, это может дать вам больше гибкости.
Что-то вроде:
<Directory /path/to/application>
[AllowOverride all](https://httpd.apache.org/docs/2.2/mod/core.html#allowoverride)
# Custom Options, etc.
</Directory>
Позволил бы вашему .htaccess
файл, который будет использоваться для различных аутентификаций, авторизации, перезаписи маршрута и т. д.
- Мы пока не можем делать несколько серверов, так есть ли другие альтернативы тому, что мы пытаемся выполнить?
Вы можете посмотреть на контейнеризацию ваших различных приложений. Каждое приложение может жить в своем собственном контейнере, а затем вы можете установить другой контейнер с Nginx, который передает различные URI вашим различным приложениям.