Apache serve subdomínio em vez de domínio

Apache serve subdomínio em vez de domínio

Eu tinha dois sites instalados e funcionando em meu servidor ( nextcloud.example.com(Instância Nextcloud) e example.com(Instância Grav)). Adicionei uma configuração Postfix no servidor e agora também posso enviar e-mails. Mas eu errei alguma coisa com meus certificados, então os refiz...

Oproblema principalagora é isso, sempre quando estou tentando abrir example.comestá sempre chamando example.com/index.php/logino que renderiza a página de LogIn, nextcloud.example.commas estou esperando minha página principal do Grav. também quando estou ligando, example.com/adminele resolve example.com/index.php/login.

Sou muito novo neste tópico, então espero que estes sejam os dados relevantes:

$ apachectl configtest
Syntax OK

Inseri meus arquivos conf aqui, mas o StackExchange marcou minha área de texto como spam. Então eu os removi. Fico feliz em fornecer mais informações, simplesmente não fui permitido...

EDITAR:

apache2ctl -S
VirtualHost configuration:
127.0.1.1:443          example.com (/etc/apache2/sites-enabled/example.com-le-ssl.conf:2)
127.0.1.1:80           example.com (/etc/apache2/sites-enabled/example.com.conf:1)
5.252.225.176:443      nextcloud.example.com (/etc/apache2/sites-enabled/nextcloud.example.com-le-ssl.conf:2)
5.252.225.176:80       nextcloud.example.com (/etc/apache2/sites-enabled/nextcloud.example.com.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex rewrite-map: using_defaults
Mutex ssl-stapling-refresh: using_defaults
Mutex ssl-stapling: using_defaults
Mutex ssl-cache: using_defaults
Mutex default: dir="/var/run/apache2/" mechanism=default 
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33 not_used
Group: name="www-data" id=33 not_used
<VirtualHost nextcloud.example.com:443>
  DocumentRoot /var/www/nextcloud.example.com/htdocs/
  ServerName  nextcloud.example.com

  <Directory /var/www/nextcloud.example.com/htdocs/>
    Require all granted
    AllowOverride All
    Options FollowSymLinks MultiViews

    <IfModule mod_dav.c>
      Dav off
    </IfModule>
  </Directory>
RewriteEngine off
# Some rewrite rules in this file were disabled on your HTTPS site,
# because they have the potential to create redirection loops.

#RewriteCond %{SERVER_NAME} =nextcloud.example.com
#RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
<IfModule mod_ssl.c>
<VirtualHost example.com:443>
  DocumentRoot /var/www/example.com/htdocs/
  ServerName  example.com

  <Directory /var/www/example.com/htdocs/>
    Require all granted
    AllowOverride All
    Options FollowSymLinks MultiViews

    <IfModule mod_dav.c>
      Dav off
    </IfModule>
  </Directory>
RewriteEngine on
# Some rewrite rules in this file were disabled on your HTTPS site,
# because they have the potential to create redirection loops.

#RewriteCond %{SERVER_NAME} =example.com
#RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

Responder1

Você provavelmente precisará alterar os nomes de host nas diretivas VirtualHost para *. Ou seja, em vez de

<VirtualHost nextcloud.example.com:443>
  ServerName  nextcloud.example.com
  ...
</VirtualHost>
<Virtualhost example.com:443>
  ServerName  example.com
  ...
</VirtualHost>

tentar

<VirtualHost *:443>
  ServerName  nextcloud.example.com
  ...
</VirtualHost>
<Virtualhost *:443>
  ServerName  example.com
  ...
</VirtualHost>

Geralmente o argumento do VirtualHost deve ser um endereço IP ou *corresponder a todos os endereços IP.

O primeiro formulário acima falhará se o endereço IP onde o Apache recebe a conexão for diferente do endereço DNS de exemplo.com - por exemplo, se exemplo.com estiver atrás de um proxy. Nesse caso, o Apache voltará a servir a partir do host virtual padrão, que é o primeiro, que no seu caso parece ser nextcloud.example.com.

VerHost Virtual, eHosts virtuais baseados em nomes.

informação relacionada