如何限制Apache模块(处理程序)到虚拟主机(虚拟主机)
问题描述:
我有一个Apache模块,它使用ap_hook_post_read_request
钩子来执行内部重定向,当满足某些条件。我想限制这个处理程序到一个虚拟主机,但目前它在所有虚拟主机上触发(有很多)。 httpd.conf配置仅限于LoadModule
指令。我已经尝试在vhost中使用SetHandler handlername
,在主配置中使用SetHandler None
,但处理程序仍然对其他虚拟主机的请求调用。该模块还会注册ap_register_output_filter
挂钩,但输出过滤器不会执行任何其他操作,除非自行移除并向前传递控制权。如何限制Apache模块(处理程序)到虚拟主机(虚拟主机)
答
我创建了虚拟主机的一些自定义配置。我在模块中查找这个配置,如果它没有配置,则返回,所以这实际上允许我将模块限制为一个虚拟主机。
答
试试这个:
# VirtualHost1 = localhost:80
<IfModule mod_weblogic.c>
<VirtualHost 127.0.0.1:80>
DocumentRoot "C:/test/VirtualHost1"
ServerName localhost:80
</VirtualHost>
</IfModule>
问题不在于未针对特定虚拟主机调用处理程序,而是在所有虚拟主机上调用它,并且我只希望它将其应用于单个虚拟主机 – Andrew 2012-07-06 16:01:26