Mapeie o IP local 127.0.1.2 no diretório diferente no Apache Server

0

No meu localhost (Apache Server), tenho dois VirtualHost na porta 80 apontando para um diretório diferente.

Aqui está o meu arquivo dois conf:

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot /home/myuser/project_1/

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<VirtualHost *:80>
    ServerName project2
    DocumentRoot /home/myuser/project_2/

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

E no meu arquivo /etc/hosts :

127.0.0.1 localhost
127.0.1.2 project2

Agora, quando digito http://localhost , ele mapeia para o diretório project_1 e, para http://project2/ , mapeia para o diretório project_2 . As coisas estão bem aqui, mas se eu digitar 127.0.1.2 , ele sempre mapeará o primeiro project_1 em vez do project_2 diretório, ou seja, mapeia para localhost em vez de project2 url.

Por que isso? Como posso fazer esse mapeamento reverso?

    
por Sagaryal 23.03.2018 / 04:41

1 resposta

4

Em suas configurações de host virtual, você está usando hosts virtuais baseados em nome, conforme você especifica ServerName . Isso significa que uma configuração só será carregada quando o cabeçalho "Host" na solicitação do cliente corresponder. O comportamento padrão do Apache quando ele não pode corresponder ao host solicitado com qualquer host virtual configurado é carregar o primeiro host virtual configurado que ele pode encontrar.

Existem muitas opções para obter o conteúdo certo, uma é ajustar o cabeçalho "Host" na sua solicitação para corresponder ao ServerName que você está tentando alcançar. Outra seria adicionar o endereço IP como ServerAlias ou você poderia alternar para hosts virtuais baseados em IP e configurar as coisas dessa maneira.

    
por 23.03.2018 / 05:11