Apache Vhost Weiterleitung von non-www auf www mit https

  • https weiterleitung geht jetzt, die htaccess ist erstmal auskommentiert;

    Am WWW knoblel ich noch. Laut Curl klappt die Weiterleitung auf www, Windows zickt wie schon gesagt rum

    Ein Mensch hat zwei Beine, ein Regenwurm hat keine.

    Einmal editiert, zuletzt von RAD750 (12. Oktober 2022 um 17:11)

  • Ich vermute, das Problem liegt darin, dass du die Domain https://unga-bunga.de außer Acht lässt.

    Soweit ich weiß versucht z.B. Chrome bei der Eingabe von unga-bunga.de erstmal https. Wenn das klappt, wird https genommen. Ansonsten http.

    Laut deiner Config hört aber kein VirtualHost auf die Konstellation https://unga-bunga.de.

    Das ist ein Auszug aus meiner Config. Jedoch leite ich immer auf die Non-www-Variante.

    Dieses Gebäude hat mir die Vorfahrt genommen! *hup*

  • So? Sorry, ich steh komplett aufm Schlauch :/

    Ein Mensch hat zwei Beine, ein Regenwurm hat keine.

  • Mein Vorschlag wäre das hier:

    Ich fasse nochmal zusammen:

    Wenn der Request auf Port 80 (also http) reinkommt, möchtest du immer auf https und www weiterleiten. Also muss der erste VirtualHost auf Port 80 und die beiden Hostnames hören und immer auf https://www… weiterleiten.

    Der zweite Host hört auf Port 443 (also https) und auch beide Hostnames. Jedoch muss dieser beim falschen Hostname (ohne www) auf die www-Variante weiterleiten.

    www none-www
    http weiterleiten weiterleiten
    https ausliefern weiterleiten

    Dieses Gebäude hat mir die Vorfahrt genommen! *hup*

    3 Mal editiert, zuletzt von Virinum (12. Oktober 2022 um 21:27)

  • Ich bekomme nen Zertifikatsfehler, werde aber nicht auf die www-Variante weitergeleitet.

    O.g. Config habe ich jedoch auch noch nicht getestet, da ich gerade nicht am PC bin.

    Zum Testen nutze ich übrigens gerne das Tool hier: https://www.redirect-checker.org

    EDIT:

    Zertifikatsfehler kommt nicht mehr. Umgeleitet werde ich aber immer noch nicht.

    Dieses Gebäude hat mir die Vorfahrt genommen! *hup*

    Einmal editiert, zuletzt von Virinum (12. Oktober 2022 um 22:09)

  • Die RewriteEngine wurde autom. hinzugefügt nachdem Certbot neue Zertifikate ausgestellt hat:

    Ein Mensch hat zwei Beine, ein Regenwurm hat keine.

  • Ich verwende Certbot nicht; in der aktuellen Form wird der Webserver selbst allerdings keine Zugriffe auf den Pfad/das Verzeichnis /.well-known erlauben.

    Auch würde ich vorschlagen, das Verhalten beim Aufruf von http://*unga-bunga.de/%2A und https://*unga-bunga.de/* (welches gerade noch einen Fehler enthielt) zu vereinheitlichen – für Port 80 etwa wie folgt (RewriteCond könnte entfallen, weil mit https:// ein Port-Wechsel erzwungen wird und es keine Schleife geben kann):

    Apache Configuration
            RewriteEngine On
            RewriteCond %{REQUEST_URI} !^/.well-known/acme-challenge/..*
            RewriteRule ^(.*)$ https://www.unga-bunga.de$1 [redirect=301]

    (Anmerkung: Je nach Anwendung sollte man bei externen Umleitungen ggf. zusätzlich die Flagge NE verwenden.)

    Für Debugging-Zwecke empfiehlt sich die temporäre Veränderung des Log-Levels:

    Code
    #       LogLevel warn
            LogLevel alert rewrite:trace6

    VServer IOPS Comparison Sheet: https://docs.google.com/spreadsheets/d/1w38zM0Bwbd4VdDCQoi1buo2I-zpwg8e0wVzFGSPh3iE

    Einmal editiert, zuletzt von m_ueberall (12. Oktober 2022 um 23:38)

  • Hay,

    ich gucke mich gerade halb-blind und habe mittlerweile alles vergessen, was ich jemals über rewrite wußte. Aber alles müsste stimmen. Trotzdem geht es nicht. Also kann es nur etwas ganz einfaches sein, was wir vielleicht alle sofort überlesen.

    Versuche doch mal die RewriteCond ohne den Punkt zu escapen... also

    Code
    RewriteCond %{HTTP_HOST} ^unga-bunga.de$ [NC]

    Dann weiß ich aber auch nicht mehr weiter...

    CU, Peter

    Peter Kleemann // https://www.pkleemann.de // +49 621 1806222-0 // Kann Programme, Internet, Netzwerke und Telefon.

  • Ich würde für Port 443 einfach eine „minimalistische“ Regel verwenden (best practice ist zusätzlich die Behandlung eines nicht-gesetzen Hostnamens, vgl. hier­; dies dient der Absicherung, wenn man Umschreibungen hin- und herkopiert – im Extremfall würde man trotz VirtualHost-Portangabe auch noch eine Bedingung "RewriteCond %{SERVER_PORT} ^443" (bzw. 80) voranstellen, um bei Verwendung etwaiger Abkürzungen/Optimierungen Endlosschleifen auszuschließen.)

    Code
        RewriteCond %{HTTP_HOST} !^www\. [NC]
        RewriteCond %{HTTP_HOST} !^$

    (RewriteRule vgl. Port 80 oben; in diesem Fall ggf. tatsächlich mit L-Flagge versehen, da es hier wohl (später) noch weitere Umschreibungen geben wird.)

    PS: Bei Hardenize bekommt man geschimpft, wenn man gleichzeitig die (Unter-)Domäne und das Protokoll ändert, dort wird zuerst ein Portwechsel und dann ein (Unter-)Domänenwechsel in einem zweiten Schritt propagiert.

    VServer IOPS Comparison Sheet: https://docs.google.com/spreadsheets/d/1w38zM0Bwbd4VdDCQoi1buo2I-zpwg8e0wVzFGSPh3iE

    4 Mal editiert, zuletzt von m_ueberall (13. Oktober 2022 um 00:18)

  • Hi!

    Versuche doch mal die RewriteCond ohne den Punkt zu escapen... also

    Hab ich Versucht, leider ohne Erfolg.

    Ich würde für Port 443 einfach eine „minimalistische“ Regel verwenden

    Sieht auf jeden Fall vielversprechend aus, bringts leider auch nicht. Sonst Versuch ichs als nächstes per .htaccess, müsste ja klappen...🤔

    Ein Mensch hat zwei Beine, ein Regenwurm hat keine.

  • Gerade mal gemacht, scheint keinen Erfolg zu bringen:

    Ein Mensch hat zwei Beine, ein Regenwurm hat keine.

  • Was passiert bei folgendem?

    Im 80-vhost:

    Apache Configuration
    RewriteEngine on
    RewriteCond %{SERVER_NAME} =unga-bunga.de [OR]
    RewriteCond %{SERVER_NAME} =www.unga-bunga.de
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

    Kein Rewrite im 443-vhost und stattdessen eine .htaccess in der docroot:

    Apache Configuration
    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www\.unga-bunga\.de$ [NC]
    RewriteRule (.*) https://www.unga-bunga.de/$1 [R=301,L]
  • So in etwa?

    Ein Mensch hat zwei Beine, ein Regenwurm hat keine.