Apache vhosts - Como eu roteio muitos sites de uma maneira, mas direciono o site de forma diferente?

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

Gostaria de bloquear os dois últimos domínios (e vários outros). Para isso eu adicionei a seguinte entrada vhost:

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

Isso funciona bem. Mas agora eu gostaria que o primeiro domínio fosse roteado para um site que estou veiculando (executando o XAMPP). Isso funciona para rotear TODOS os domínios para o meu site de desenvolvimento:

<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>

Mas eu quero enviar apenas o developersite.com para lá. Eu tentei portas e ips diferentes, mas acho que não entendi algo básico.

Desculpe por fazer uma pergunta tão básica. Obrigado!

    
por dylanized 07.03.2013 / 03:19

2 respostas

1

Eu acho que o seu "bloqueio" VirtualHost está funcionando apenas como você espera, devido ao comportamento padrão do Apache; se não for possível encontrar um VirtualHost com um ServerName / ServerAlias correspondente à solicitação, ele usará o VirtualHost padrão (que, se não for explicitamente selecionado, é o primeiro que analisa).

Você deve colocar os sites que você deseja bloquear explicitamente em seu VirtualHost de "bloqueio", assim:

<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>
    
por 23.03.2013 / 13:34
1

Acho que você precisa analisar as configurações de host virtual novamente. Pergunta não faz sentido. Como

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

permite developitesite.com e bloqueia outros sites não está claro quando nada sobre o que permitir e o que bloquear mencionado na configuração. Dê uma olhada no link para aprender noções básicas de hospedagem virtual do Apache. Então use

Order deny,allow
deny from all 

para negar domínios que você não deseja que sejam acessados.

Em seguida, use 'ProxyPass' para encaminhar solicitações de um site local para outro servidor, etc.

    
por 07.03.2013 / 03:40