apache virtualhost padrão não funciona

0

Eu configurei dois sites no meu vps: um é o site http example2.com, o outro é o site https example1.com:

Listen 80
Listen 443

<virtualhost *:443>
ServerName example1.com
DocumentRoot "/var/www/example1.com"
</virtualhost>

<virtualhost *:80>
ServerName example2.com
DocumentRoot "/var/www/example2.com"
</virtualhost>

Agora, se eu visitar o link , eu realmente abro o link . Como parar isso? Suponho que o link não esteja acessível. Eu tentei adicionar um virtualhost padrão esperando link abrirá o arquivo /var/www/default/index.html, mas isso não ajudou. O link sempre redireciona para o link :

Listen 80
Listen 443

<virtualhost *>
DocumentRoot "/var/www/default"
</virtualhost>

<virtualhost *:443>
ServerName example1.com
DocumentRoot "/var/www/example1.com"
</virtualhost>

<virtualhost *:80>
ServerName example2.com
DocumentRoot "/var/www/example2.com"
</virtualhost>
    
por peter 19.03.2018 / 08:51

2 respostas

0

Now if I visit http://example1.com, I actually open http://example2.com.

Isso é (em parte) porque a porta 80 e a porta 443 não são automaticamente intercambiáveis. Não há (em geral) mecanismos para redirecionar automaticamente as solicitações de uma porta para outra, a menos que você especifique esse comportamento no próprio servidor (observe que isso exclui alguns plug-ins de navegador ou recursos que forçam as conexões HTTPS).

I suppose http://example1.com is not accessible[.]

Isso está correto. A menos que você defina um host virtual HTTP na porta 80 com esse domínio, ele não existe e, portanto, não pode ser acessado (esquecendo-se dos hosts "padrão"). Estou assumindo que você definiu example1.com em seu arquivo "hosts" ou DNS também.

I tried to add a default virtual host [...] but that did not help.

Pode haver outros problemas com sua configuração. No entanto, o que você provavelmente precisa (pelo menos para começar) é uma entrada de host virtual real que corresponda ao link :

Listen 80
Listen 443

# Virtual Hosts For Basic HTTP Services

<VirtualHost *:80>

  ServerName example1.com

  # We can use * to catch all sub-domains other than e.g. www
  # ServerAlias www.example1.com *.example1.com

  ServerAlias www.example1.com

  # DocumentRoot "/var/www/example1.com"
  # DocumentRoot "/var/www/default"

  # If we get any requests on port 80 for example1.com 
  # redirect them to e.g. http://www.example1.com:443/

  Redirect permanent / http://www.example1.com:443/

</VirtualHost>

# This is not an SSL (HTTPS) virtual host

<VirtualHost *:443>
  ServerName example1.com
  DocumentRoot "/var/www/example1.com"
</VirtualHost>

# Our other domain

<VirtualHost *:80>
  ServerName example2.com
  DocumentRoot "/var/www/example2.com"
</VirtualHost>
    
por 19.03.2018 / 11:26
0

Quando você usa http: //, conecta-se à porta 80. Na porta 80, você só tem o example2.com, que lida com todas as solicitações para a porta 80. Tente usar:

https://example1.com

link

http://example1.com:443/
    
por 19.03.2018 / 08:58