Linuchs: Umleitung nach https klappt nicht

Moin,

ich dachte, wir hätten dieses Problem diskutiert, finde es aber nicht wieder. Vielleicht verborgen in einem Faden.

Wenn ich dieses in die Adresszeile vom FF eingebe:

  • remso.de
  • www.remso.de
  • remso.org
  • www.remso.org

Wird wie gewünscht die Seite https://remso.eu/index.php ausgeliefert. Zugehörige .htaccess bei remso.de und remso.org gleich:

ErrorDocument 404 /error_404.php
Redirect 301 / https://remso.eu/

Wenn ich dieses eingebe:

  • remso.eu
  • www.remso.eu

kommt bei dieser .htaccess (bei remso.eu) ...


ErrorDocument 404 /error_404.php

# 2020-08-05 remso.eu/.htaccess  https://www.sslmarket.de/ssl/help-von-http-zu-https/
#RewriteEngine On
#RewriteCond %{HTTPS} off
#RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

# 2020-08-05 remso.eu/.htaccess  https://www.ionos.de/hilfe/ssl-zertifikate/tipps-zur-einrichtung-und-nutzung/https-ssl-fuer-website-erzwingen/
#RewriteEngine On
#RewriteCond %{SERVER_PORT} !=443
#RewriteRule ^(.*)$ https://remso.eu/$1 [R=301,L]

# 2020-08-05 remso.eu/.htaccess  https://wiki.selfhtml.org/wiki/Webserver/htaccess/Umleitungen_mit_mod_rewrite#Umleitung_von_http_auf_https
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]

... die Meldung

„Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at [no address given] to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log. Apache/2.4.25 (Debian) Server at remso.eu Port 80“

Keine Ahnung, was die Maschine mir mitteilen möchte.

Wo finde ich error log?

Unter Filezille sehe ich ein leeres Log-Verzeichnis:

logs

Gruß, Linuchs

  1. Lieber Linuchs,

    das hier sieht völlig richtig aus:

    # 2020-08-05 remso.eu/.htaccess  https://wiki.selfhtml.org/wiki/Webserver/htaccess/Umleitungen_mit_mod_rewrite#Umleitung_von_http_auf_https
    RewriteEngine On
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]
    

    Was für einen Sinn hat eigentlich diese Zeile?

    Redirect 301 / https://remso.eu/
    

    Willst Du die Subdomain www unterdrücken?

    Wenn ich dieses eingebe:

    • remso.eu
    • www.remso.eu

    kommt bei dieser .htaccess (bei remso.eu) ...

    [htaccess-Code]

    ... die Meldung

    „Internal Server Error

    Meinst Du mit "eingebe" in der Adresszeile des Browsers? In Deinem Code steht das ja nirgends. Also gehe ich davon aus, dass Du die Subdomain unterdrücken willst. Ich vermute, dass Dein Redirect falsch ist, da er nach meiner Auffassung unendlich oft umleitet. Um Dein Ziel zu erreichen, verwende doch das hier:

    RewriteCond %{SERVER_NAME}  ^www\.              [OR]
    RewriteCond %{SERVER_NAME}  ^(www\.)?remso\.de  [OR]
    RewriteCond %{SERVER_NAME}  ^(www\.)?remso\.org
    RewriteRule .*  https://remso.eu%{REQUEST_URI} [R,QSA]
    

    Vielleicht hilft es gegen den 500er...

    Liebe Grüße

    Felix Riesterer

    1. Hallo Felix,

      Was für einen Sinn hat eigentlich diese Zeile?

      Redirect 301 / https://remso.eu/

      Im .htaccess bei remso.de und remso.org leitet sie zu remso.eu - das klappt ja auch.

      Also gehe ich davon aus, dass Du die Subdomain unterdrücken willst.

      Ich habe nie verstanden, was die Subdomain www bezweckt. Wenn alle Domains denselben Vornamen haben, ist der doch redundant.

      Bei einer Fehlermeldung wg. falschem Zertifikat lese ich, dass https für remso.eu und www.remso.eu gilt. Ich hatte es mit https://remso.de in der Adresszeile des Browsers versucht. Diese Eingabe wird nicht nach remso.eu umgeleitet.

      Habe deine vier Zeilen in die .htaccess bei remso.eu geschrieben: „Internal Server Error”, auch wenn ich „RewriteEngine On“ voranstelle.

      Die drei .htaccess (für de, eu und org) habe ich per FTP hochgeladen. Ich kann auf den Server als root zugreifen, vielleicht macht es Sinn, an einer anderen Schraube zu drehen. Aber Ahnung habe ich keine.

      Habe mich vollkommen im Gestrüpp der Ratschläge festgefahren und die .htaccess bei eu wieder gelöscht. Wenn ich nun remso.eu eingebe, ergänzt offenbar der Browser zu http://remso.eu und ich bekomme eine unsichere Seite.

      Ich möchte doch nur, dass https bei eu kommt, wenn http gerufen wird. Ist das so schwer?

      Kommt mir vor wie eine Lotterie, aber nur Nieten. Auch dieses „Los“ ist eine Niete.

      Gruß, Linuchs

      1. Habe hier was gelesen:

        „Sie müssen dabei auf dem Server das Modul mod_rewrite aktivieren, was aber bei meisten Webhostern kein Problem darstellt.“

        Wie geht das?

        1. Lieber Linuchs,

          „Sie müssen dabei auf dem Server das Modul mod_rewrite aktivieren, was aber bei meisten Webhostern kein Problem darstellt.“

          aha! Wenn in der .htaccess auf etwas zugegriffen werden soll, das nicht verfügbar ist, dann führt das selbstverständlich zu einem Fehler, in diesem Fall einem 500er.

          Wie geht das?

          $ a2enmod rewrite

          Das Dollarzeichen soll Dir zeigen, dass Du dafür auf einer Shell sein musst. Wenn der Shell-Benutzer nicht root ist, dann kann dieser Code an fehlender Berechtigung scheitern. Eventuell hilft es dann, sudo an den Anfang zu schreiben, damit der Code mit root-Rechten ausgeführt wird. Probiere es aber zuerst ohne sudo!

          Liebe Grüße

          Felix Riesterer

          1. Lieber Felix,

            ahaa ...

            Server meldet: Enabling module rewrite. To activate the new configuration, you need to run: systemctl restart apache2

            Kann ich das aus der Ferne machen oder gibt es da wieder Dornengestrüpp und Fallgruben?

            Na, Mut zum Risiko, zur Not muss es der Fachmann in Frankfurt richten ...

            Oh Wunder, kaum macht man's richtig, schon funktioniert's.

            Dein Tipp war der richtige Zauberspruch. Danke.

            Linuchs

  2. Hallo Linuchs,

    zeig mal bitte die komplette VirtHost-Definition.

    LG
    localhost

    1. Hallo localhost,

      VirtHost-Definition

      Hab erstmal geguckt, wat dat is.

      Hier was gefunden und ich soll dies eingeben: /usr/local/apache2/bin/httpd -S

      Meldung: -bash: /usr/local/apache2/bin/httpd: Datei oder Verzeichnis nicht gefunden

      Weist du, als Webmeister bin ich sowas wie ein Fremdenführer im Web, webe Verknüpfungen und bringe meine Besucher dorthin, wohin sie möchten.

      Aber wie das Getriebe in meinem Webstuhl (Server) funktioniert, habe ich keine Ahnung. Und Reparieren kann ich schon gar nicht.

      Linuchs

      1. Lieber Linuchs,

        Aber wie das Getriebe in meinem Webstuhl (Server) funktioniert, habe ich keine Ahnung. Und Reparieren kann ich schon gar nicht.

        dann solltest Du Dir Deine Server-Administration von einem Fachmann erledigen lassen! Alles andere ist grob fahrlässig!!

        Liebe Grüße

        Felix Riesterer

        1. Lieber Felix,

          dann solltest Du Dir Deine Server-Administration von einem Fachmann erledigen lassen!

          Habe ich ja auch. Aber diese Umleitung erschien so einfach wie ein Fingerschnipp. Und der „Fachmann“ schreibt Rechnungen.

          Also leite ich mein Problem an den weiter ...

          Gruß, Linuchs

  3. Tach!

    „Internal Server Error

    The server encountered an internal error or misconfiguration and was unable to complete your request.

    Please contact the server administrator at [no address given] to inform them of the time this error occurred, and the actions you performed just before this error.

    More information about this error may be available in the server error log. Apache/2.4.25 (Debian) Server at remso.eu Port 80“

    Keine Ahnung, was die Maschine mir mitteilen möchte.

    In dieser Meldung möchte sie dir ganz bewusst nichts genaues mitteilen. 500er Fehlermeldungen würden interne Details preisgeben, wenn sie auf die Ursache hinweisen würden. Deswegen steht diese nur im Logfile.

    Wo finde ich error log?

    Das ist in der Konfiguration des Webservers geregelt. Das kann dir kein Außenstehender sagen. Es ist global im Apachen geregelt, kann aber auch per VHost überschrieben werden. Die Direktive dazu heißt ErrorLog.

    dedlfix.