Apache-2.2
Apache vhosts - 如何以一種方式路由多個站點,但以不同方式路由開發站點?
127.0.0.1 developmentsite.com 127.0.0.1 blockeddomain1.com 127.0.0.1 blockeddomain2.com
我想阻止最後 2 個域(以及其他一些域)。為此,我添加了以下虛擬主機條目:
<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>
但我只想將 developmentsite.com 發送到那裡。我嘗試了不同的埠和ips,但我想我只是不了解一些基本的東西。
很抱歉問了這麼一個基本的問題。謝謝!
我認為由於 Apache 的預設行為,您的“阻塞” VirtualHost 只能按您希望的方式工作;如果它找不到與請求匹配的
ServerName
/的 VirtualHostServerAlias
,它將使用預設的 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>