Apache虚拟主机 – 如何路由许多网站的方式,但路由开发网站不同?

127.0.0.1 developmentsite.com 127.0.0.1 blockeddomain1.com 127.0.0.1 blockeddomain2.com 

我想阻止最后2个域名(和其他一些域名)。 为此,我添加了以下的vhost条目:

 <VirtualHost *:80> DocumentRoot "/sites/blocked" <Directory /sites/blocked> Options Indexes FollowSymLinks Multiviews AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost> 

这工作正常。 但是现在我想让第一个域名路由到我正在服务的网站(运行XAMPP)。 这适用于将所有域路由到我的开发站点:

 <VirtualHost *:80> DocumentRoot "/sites/developmentsite.com" ServerName developmentsite.com ServerAlias developmentsite.com <Directory /sites/developmentsite.com> Options Indexes FollowSymLinks Multiviews AllowOverride All Order allow,deny allow from all </Directory> ErrorLog "/sites/logs/developmentsite.com/error_log" CustomLog "/sites/logs/developmentsite.com/access_log" common </VirtualHost> 

但是我想在那里发送这个。 我已经尝试了不同的端口和IPS,但我想我只是不明白一些基本的东西。

对不起,问这样一个基本的问题。 谢谢!

我认为,由于Apache的默认行为,你的“阻塞”VirtualHost只能如你所愿地工作; 如果找不到一个ServerName / ServerAlias与请求匹配的VirtualHost,它将使用默认的VirtualHost(如果没有明确select,它是第一个parsing的)。

你应该把你想要明确阻止的站点放到你的“阻塞”VirtualHost中,如下所示:

 <VirtualHost *:80> # Add these lines so Apache knows explicitly what to route here: ServerName blocking.localhost ServerAlias blockeddomain1.com *.blockeddomain1.com ServerAlias blockeddomain2.com *.blockeddomain2.com # Everything else DocumentRoot "/sites/blocked" <Directory /sites/blocked> Options Indexes FollowSymLinks Multiviews AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost> 

我认为你需要再看看虚拟主机configuration。 问题没有意义。 怎么样

 <VirtualHost *:80> DocumentRoot "/sites/blocked" <Directory /sites/blocked> Options Indexes FollowSymLinks Multiviews AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost> 

允许developmentsite.com和阻止其他网站不清楚什么时候什么东西允许和什么阻止在configuration中提到的。 查看http://www.sbarjatiya.com/notes_wiki/index.php/Apache_virtualhost_configuration_for_hosting_multiple_domains ,了解Apache虚拟托pipe的基本知识。 然后使用

 Order deny,allow deny from all 

拒绝你不想被访问的域名。

然后使用“ProxyPass”将一个本地站点的请求转发到其他服务器等。