.htaccess 文件的条件包含

.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 文件中。因此,我可以 gitignore 这个特定的包含文件。

我可以做一个 git hook,但是我不太熟悉并且现在也不想花时间去学习它。

PS,如果您好奇我的补丁的作用,它提供了关于在何处将 php 作为 cgi 运行的阶段服务器指令。

答案1

Apache 允许文件内的指令<IfDefine><IfModule>.htaccess

如果你想使用,<IfDefine>那么 Apache 需要以 的形式启动httpd -Dsomedefinition。请参阅这里

<IfModule>如果您只希望在加载给定的 Apache 模块时启用某些指令(例如,如果已加载 mod_perl),则很有用。请参阅这里

答案2

.htaccess 不支持使用 Include 指令,句号。

您应该做的是在登台服务器上的 httpd.conf 中定义 php 操作。

如果它没有被下游的任何地方覆盖,它将是一个全局设置。

相关内容