Apache Vhost Weiterleitung von non-www auf www mit https

Compi

New Member
Hi!
Ich möchte dass wenn man meine Domain (zu testzwecken 1b1t.de) aufruft immer bei http://www.1b1t.de landet. Es soll beim inizialen Aufruf egal sein ob man https und/oder www mit angibt. Ich habe rumgegoogelt und bin zu diesem Ergebnis gekommen:

Code:
<VirtualHost *:80>
  ServerName 1b1t.de
  ServerAlias www.1b1t.de

  # http->https
  RewriteEngine On
  RewriteCond %{HTTPS} off
  RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}
RewriteCond %{SERVER_NAME} =1b1t.de [OR]
RewriteCond %{SERVER_NAME} =www.1b1t.de
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

<VirtualHost *:443>
  ServerName 1b1t.de
  ServerAlias www.1b1t.de

  # non-www->www
  RewriteEngine On
  RewriteCond %{HTTP_HOST} !^www\. [NC]
  RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>

Funktioniert nur leider nicht! .htaccess habe ich auch versucht, die wird aber auch irgendwie ignoriert.
Auf dem Server läuft Ubuntu 22.04 mit Apache(also wirklich nur Apache, kein PHP und nix bis jetzt)

Habt ihr eine Idee?

LG
Compi
 
Warum einfach, wenn es auch kompliziert geht. Du brauchst drei vHosts, einer der http für die Domain mit und ohne www auf https://www.1b1t.de weiterleitet und ein vHost nur für die Domain ohne www für https sowie den dritten für die eigentliche Webseite:
Code:
<VirtualHost *:80>
        ServerName 1b1t.de
        ServerAlias www.1b1tde
        RedirectPermanent / https://www.1b1t.de/
</VirtualHost>

<VirtualHost *:443>
        ServerName 1b1t.de
        SSLEngine on
        SSLCertificateFile ...
        SSLCertificateKeyFile ...
        RedirectPermanent / https://www.1b1t.de/
</VirtualHost>

<VirtualHost *:443>
        ServerName www.1b1t.de

        SSLEngine on
        SSLCertificateFile ...
        SSLCertificateKeyFile ...
         DocumentRoot ...

        [weitere Konfiguration]
</VirtualHost>
Kein Rumhantieren mit komplizierten Rewrite-Rules, der RedirectPermanent reicht aus und braucht weniger CPU-Last.

Edit: Domain korrigiert, damit sie zum Beispiel passt.
 
Last edited:
Die Domain bei @danton sind falsch falls du die Copy/Pasted hast. b1bt vs. 1b1t

Ansonsten hängt ggf. noch ein falscher 301 in deinem Browsercache.
 
Last edited:
Das habe ich schon korrigiert, auch die OpenSSL Dinger - funktioniert nicht. Sehr komisch, dass auch .htaccess ignoriert wird.
 
gerne hilft auch ein direkter curl -I $URL an der Konsole - da ist wenigstens nichts drin, was meint, Intelligent handeln zu müssen. Wenn da der Response passt ist's ein Browser-Problem.
 
Danke für den Hinweis @MadMakz , ich habe die Domain in meinem Posting oben korrigiert. Der Code funktioniert, denn ich habe ihn aus meiner Apache Konfig kopiert und nur die Domain ersetzt und den Pfad zu den Zertifikatsdateien vom certbot für Lets Encrypt ersetzt.
Was funktioniert genau nicht und wie äußert es sich? Welcher Browser? Wird ein Fehler ausgegeben. Was sagen das access.log und error.log - in mind. einem von beiden muss ja was drin stehen, wenn das Logging nicht deaktiviert wurde (falls doch, zur Fehlersuche wieder aktivieren).
Und wird die Domain im DNS überhaupt zur richtige IP aufgelöst? Nicht das du die Konfig auf dem falschen Server änderst...
 
Back
Top