当前位置:  开发笔记 > 运维 > 正文

我怎样才能拥有条件.htaccess块?

如何解决《我怎样才能拥有条件.htaccess块?》经验,为你挑选了2个好方法。

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

请注意,我使用的是带有IfModule调用的kludge,但这对我们的新生产服务器不起作用,因为它与我的登台服务器共享所有相同的模块.

注意我需要将SetEnv与这些重写捆绑在一起.目前,如果你使用RewriteCond,它只会绑定到下面的RewriteRule,而不是下面的SetEnv.



1> Michael Cram..:

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

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

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

虽然我喜欢通过在启动时将标志传递给httpd进程并使用IfDefine块查找它们来做这种事情.


SetEnv VARNAME foo



SetEnv VARNAME bar



2> Volomike..:

在Ubuntu Linux上,IfDefine设置了变量

/etc/apache2/envvars

并被称为APACHE_ARGUMENTS.所以,在该文件的底部我不得不添加:

export APACHE_ARGUMENTS="-D dev"

...然后用以下方式退回服务器:

/etc/init.d/apache2 stop
/etc/init.d/apache2 start

在其他系统上:

但是,有一篇关于这个主题的Debian文章在这里讨论了这个问题.在该示例中,要编辑的文件是/ etc/default/apache2并且调用该变量APACHE_DEFINES.

同样,在一些系统上它被命名为一个变量OPTIONS被设置中/etc/sysconfig/httpd.

因此,您真正需要做的是在apache2ctl文件中查找start部分.所以,首先做一个whereis apache2ctl找到此脚本,猫出来,并找到在它的Apache2指令开始部分,它是否能通过变量是OPTIONS,APACHE_ARGUMENTS,APACHE_DEFINES,或别的东西.然后,看看哪个文件,你需要通过实验与任编辑/etc/sysconfig/httpd,/etc/default/apache2/etc/apache2/envvars.

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有