Apache stellt Subdomain statt Domain bereit

Apache stellt Subdomain statt Domain bereit

Ich hatte zwei Sites auf meinem Server am Laufen ( nextcloud.example.com(Nextcloud-Instanz) und example.com(Grav-Instanz)). Ich habe eine Postfix-Konfiguration auf dem Server hinzugefügt und kann jetzt auch E-Mails versenden. Aber ich habe etwas mit meinen Zertifikaten vermasselt, also habe ich sie neu gemacht...

DerHauptproblemjetzt ist es so, dass immer, wenn ich versuche, es zu öffnen, example.comes aufruft example.com/index.php/login, wodurch die Anmeldeseite gerendert wird, nextcloud.example.comaber ich erwarte meine Grav-Hauptseite. auch wenn ich es aufrufe, example.com/adminwird es zu aufgelöst example.com/index.php/login.

Ich bin ziemlich neu in diesem Thema, daher hoffe ich, dass dies die relevanten Daten sind:

$ apachectl configtest
Syntax OK

Ich habe meine Conf-Dateien hier eingefügt, aber StackExchange hat meinen Textbereich als Spam markiert. Also habe ich sie entfernt. Gerne gebe ich Ihnen weitere Informationen, ich durfte es nur nicht...

BEARBEITEN:

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>

Antwort1

Sie müssen wahrscheinlich die Hostnamen in Ihren VirtualHost-Anweisungen in ändern *. Das heißt, statt

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

versuchen

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

Im Allgemeinen sollte das Argument von VirtualHost eine IP-Adresse sein oder *mit allen IP-Adressen übereinstimmen.

Die erste Form oben schlägt fehl, wenn die IP-Adresse, unter der Apache die Verbindung empfängt, von der DNS-Adresse von example.com abweicht – beispielsweise, wenn example.com hinter einem Proxy liegt. In diesem Fall greift Apache auf den standardmäßigen virtuellen Host zurück, der der erste ist und in Ihrem Fall nextcloud.example.com zu sein scheint.

SehenVirtueller Host, UndNamensbasierte virtuelle Hosts.

verwandte Informationen