Назад | Перейти на главную страницу

Условное включение для файла .htaccess

можно ли условно включить другой файл в файл htaccess. Когда я работаю локально, мои настройки apache отличаются от моего удаленного сервера.

Каждый раз, когда я втягиваю изменения через git на сайт сцены (который имеет те же настройки, что и живой сервер), я должен применить патч к моему htaccess:

diff --git a/.htaccess b/.htaccess
index 4733ffa..1b39d24 100644
--- a/.htaccess
+++ b/.htaccess
@@ -2,6 +2,15 @@
 # Apache/PHP/Drupal settings:
 #

+############################################
+## uncomment these lines for CGI mode
+## make sure to specify the correct cgi php binary file name
+## it might be /cgi-bin/php-cgi
+
+  Action php5-cgi /cgi-bin/php5-cgi
+  AddHandler php5-cgi .php
+
+

Есть ли способ условно включить это в мой файл htaccess. Таким образом, я мог бы просто игнорировать этот конкретный включаемый файл.

Я мог бы использовать git-ловушку, но я не очень разбираюсь в этом и не заинтересован в том, чтобы сейчас тратить время на изучение этого.

P.S. Если вам интересно, что делает мой патч, так это то, что он предоставляет директивы промежуточного сервера относительно того, где запускать php как cgi.

Apache позволяет <IfDefine> и <IfModule> директивы в .htaccess файлы.

Если вы хотите использовать <IfDefine> тогда Apache нужно запустить как httpd -Dsomedefinition. Видеть Вот.

<IfModule> полезно, если вы хотите, чтобы были включены только определенные директивы, если данный модуль Apache загружен (например, если был загружен mod_perl). Видеть Вот.

.htaccess не поддерживает использование директивы Include, точка.

Вместо этого вам следует определить действие php в httpd.conf на промежуточном сервере.

Это будет глобальная настройка, если она не будет отменена нигде ниже по течению.