Korrekte Einstellung für Apache VirtualHosts

stna1981

Commander
Registriert
März 2007
Beiträge
2.487
Hi zusammen,

ich habe folgende Ordnerstruktur auf meinem Raspberry:

/var/www/html (nur die index.html)
/var/www/html/admin
/var/www/html/pihole
/var/www/html/nextcloud

Der RPi ist über Unbound local-zone per raspi.home und cloud.home im LAN erreichbar.
Ich würde es gerne so konfigurieren, dass:

- Aufrufe per http://<ip> oder http://raspi.home auf der /var/www/html/index.html landen (Startseite)
- Aufrufe per http://<ip>/admin oder http://raspi.home/admin auf /var/www/html/admin gehen, für http://cloud.home/admin soll ein Fehler kommen
- Aufrufe per http://<ip>/pihole oder http://raspi.home/pihole auf /var/www/html/pihole gehen, für http://cloud.home/nextcloud soll ein Fehler kommen
- Aufrufe per http://<ip>/nextcloud oder http://cloud.home auf /var/www/html/admin forwarden, für http://raspi.home/nextcloud soll ein Fehler kommen. Zusätzlich soll ein Aufruf über Port 80 immer auf 443 umgeleitet werden, um https zu nutzen

Lässt sich das per Apache VirtualHosts irgendwie bewerkstellige? Habe schon einige Varianten durch, aber das richtige war wohl noch nicht dabei, oder der lokale DNS Cache hat mir in die Suppe gespuckt. Bin jetzt aber grad unsicher, wie die richtige Config ist, gerade was das Blocken unzulässiger Aufrufe wie raspi.home/nextcloud angeht, damit hab ich bisher nix gemacht.

Viele Grüße

Stefan
 
  • Gefällt mir
Reaktionen: Heinrich Harrer
Den Zugriff über die IP kannst du nicht steuern, da liefert dir der Apache immer den Standardhost (= erster gefundener) aus.

Der Rest:
Code:
<VirtualHost *:80>
  ServerName raspi.home

  RewriteEngine On

  # auf SSL umleiten
  RewriteCond %{HTTPS} off
  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

  Redirect /nextcloud https://cloud.home
</VirtualHost>

<VirtualHost *:443>
  ServerName raspi.home

  DocumentRoot /var/www/html

  SSLEngine On
  SSLCertificateFile ...
  SSLCertificateKeyFile ...

  # FCGI Direktiven u.a.
</VirtualHost>

<VirtualHost *:80>
  ServerName cloud.home

  RewriteEngine On

  # auf SSL umleiten
  RewriteCond %{HTTPS} off
  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>

<VirtualHost *:443>
  ServerName cloud.home

  DocumentRoot /var/www/html/nextcloud

  SSLEngine On
  SSLCertificateFile ...
  SSLCertificateKeyFile ...

  # FCGI Direktiven u.a.
</VirtualHost>
raspi.home/nextcloud allerdings auf cloud.home weitergeleitet, statt einem 403. Du musst allerdings natürlich selbst evtl. FCGI Direktiven einfügen. Keine Ahnung gerade wie der Raspi da arbeitet.
 
Habe nochmal ein wenig gegoogelt und deins als Vorlage genommen, ohne es gerade testen zu können erscheint es mir wie folgt am logischsten:

Code:
<VirtualHost *:80>
  ServerName cloud.home

  Redirect /nextcloud https://cloud.home
  RedirectMatch "!/nextcloud" /var/www/html
</VirtualHost>

<VirtualHost *:443>
  ServerName cloud.home
  DocumentRoot /var/www/html/nextcloud

  # SSL aktivieren
  SSLEngine On
  SSLCertificateFile ...
  SSLCertificateKeyFile ...

  RedirectMatch "!/nextcloud" /var/www/html
</VirtualHost>

<VirtualHost *:80>
  ServerName raspi.home
  DocumentRoot /var/www/html
</VirtualHost>

<VirtualHost *:443>
  ServerName raspi.home

  Redirect / http://raspi.home
</VirtualHost>

Muss ich aber erst nochmal austesten...

EDIT: funktioniert leider gar nicht... wenn ich z. B. https://raspi.home eingebe, erfolgt keine Weiterleitung auf http://raspi.home:(
 
Zuletzt bearbeitet:
Zurück
Oben