Файл .htaccess на prod и отслеживается в git, не хочу использовать .htaccess продукта на dev - PullRequest
0 голосов
/ 05 января 2019

Если это дубликат, отметьте его как есть. Кроме того, я не совсем уверен, если это будет вопрос, основанный на мнении. Мой поиск в Google не вернул ничего, имеющего отношение к моему затруднительному положению, и я не уверен, что мне следует искать в Google. ( 1 , 2 )

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

Краткое описание моей настройки развертывания git:
Локальный компьютер (dev) -> Bitbucket -> Production

Производство находится на общем хосте, поэтому я не могу напрямую перейти к производству из dev, мне нужно использовать Bitbucket в качестве посредника.

Моя среда разработки:
Я использую Vagrant локально в качестве среды разработки, которая использует Apache в качестве своего веб-сервера. Сценарий установки vagrantbox применяет изменения в файле httpd.conf для настройки VirtualHost, DocumentRoot и DirectoryIndex.

Это работало хорошо для меня в прошлом.

На производстве также используется Apache. Изначально я не отслеживал .htaccess в git, но недавно произошло изменение (перенаправление HTTP на HTTPS), которое заставило меня принять решение начать его отслеживание. Проблема, с которой я столкнулся сейчас, заключается в том, что рабочий файл .htaccess загружается в мой каталог dev и влияет на мой веб-сервер dev.

У меня было несколько идей:

  1. Создание отдельного репозитория git для отслеживания файла .htaccess на производстве, который не будет добавлен в Bitbucket или dev, но это кажется мне запутанным.
  2. Создание ветки для отслеживания файла .htaccess, но ... Я предвижу, что мне будет плохо, потому что я буду жонглировать ветками в prod / dev, и есть большая вероятность, что я что-то напортачу.
  3. Я вообще отказываюсь от отслеживания файла .htaccess, но в дальнейшем это похоже на путь к катастрофе.

Есть ли другой способ сделать это? Или мне следует использовать одну из идей, о которой я подумал?

Ответы [ 2 ]

0 голосов
/ 05 января 2019

Другой ответ, вероятно, тот, который вы ищете, однако, возможно, есть несколько альтернатив без изменения контроля версий ...

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

<Directory /path/to/public_html>
    # Disable .htaccess files...
    AllowOverride none
</Directory>

Если вам нужно .htaccess как в prod, так и в dev, но с (некоторыми) разными директивами, вы можете включить условные выражения в ваш файл .htaccess. Есть несколько способов сделать это, один из них - Define переменная в конфигурации сервера вашего сервера dev и проверка этого в .htaccess.

Например, в конфигурации вашего сервера:

Define DEV

В .htaccess:

<IfDefine DEV>
    # Development server directives...
</IfDefine>

<IfDefine !DEV>
    # Production server directives...
</IfDefine>

Обратите внимание на префикс ! (not) во втором блоке правил.

0 голосов
/ 05 января 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...