这是您之前可能遇到的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>