有可能有条件地在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文件中。 因此,我可以只gitignore这个特定的包含文件。
我可以做一个git钩子,但我不是很精通,也没有兴趣投入时间来学习这一点。
PS,如果你很好奇我的补丁是否提供了stage server的指令,在哪里运行php为cgi。
Apache允许.htaccess文件中的<IfDefine>和<IfModule>指令。
如果你想使用<IfDefine>那么Apache需要启动为httpd -Dsomedefinition 。 看到这里 。
如果您只希望在加载给定的Apache模块时启用某些指令(例如,如果mod_perl已被加载),那么<IfModule>非常有用。 看到这里 。
.htaccess不支持使用Include指令,句点。
你应该做的是在临时服务器上的httpd.conf中定义php动作。
如果它在下游的任何地方都没有被覆盖,这将是一个全局设置。