这是您之前可能遇到的Apache问题。我希望有一个源软件包可以部署到我的工作站,登台服务器和生产服务器,但要根据URL来加载不同的.htaccess设置。

请注意,我正在使用带有IfModule调用的kludge,但这不适用于我们的新生产服务器,因为它与登台服务器共享所有相同的模块。

注意我需要将SetEnv与这些重写捆绑在一起。当前,如果您使用RewriteCond,则它仅绑定到以下RewriteRule,而不绑定到下面的SetEnv。

最佳答案

代替使用SetEnv,而使用RewriteRule本身的环境变量设置功能:

RewriteCond %{HTTP_HOST} =foo.com
RewriteRule ^ - [E=VARNAME:foo]

RewriteCond %{HTTP_HOST} =bar.com
RewriteRule ^ - [E=VARNAME:bar]


尽管我更喜欢通过在启动时将标志传递给httpd进程并使用IfDefine块查找标志​​来完成这种事情。

<IfDefine FOO>
SetEnv VARNAME foo
</IfDefine>

<IfDefine BAR>
SetEnv VARNAME bar
</IfDefine>

09-12 17:49