mod_rewrite http -> https, funktioniert nicht vollständig

  • Hallo zusammen,


    ich habe leider Probleme bei der Anpassung meiner .htaccess-Datei.


    Was ich haben möchte

    Code
    * www soll entfernt werden [funktioniert]
    * slash am Ende wenn es kein Ordner ist  [funktioniert]
    * setzen eines Parameters für die Sprache [funktioniert]
    
    
    
    
    neu
    * http --> https [funktioniert nur teilweise]


    Mein URLs sind in dieser Form aufgebaut:

    Code
    http://domain.de/de/seite1/
    http://domain.de/en/seiteXY/


    Beim SSL gibt es nun leider Probleme.
    Ich möchte alles auf https umleiten. Das klappt, jedoch nicht bei Unterordnern.


    Code
    http://domain.de/de/          --> https://domain.de/de/ [funktioniert]
    http://domain.de                 --> https://domain.de/de/ [funktioniert]
    http://domain.de/de/seite1 --> http://domain.de/de/seite1/ funktioniert NICHT]


    Mein Ansatz war wie folgt:


    Kann mir jemand von Euch einen Tipp geben wo mein Fehler liegt?


    Vielen Dank.

  • Meine Empfehlung wäre, und das ist auch die offizielle Empfehlung (RedirectSSL), die Weiterleitung direkt in der Virtualhost-Direktive zu platzieren:

  • Ich merk gerade ich habe im falschen Unterforum gepostet. Sorry :(


    Bei diesem Hosting habe ich keinen Zugriff auf die Virtualhost-Direktiven.


    Kann bitte ein Moderator den Thread verschieben? Ich kann es leider nicht selber machen.

  • RewriteConds werden implizit mit "und" verknüft, also greift deine Regel nur, wenn man sowohl mit WWW. als auch mit HTTP:// daher kommt. Füge mal ein "oder" ein und schau was dann dabei herumkommt. Also etwa so:


    Apache Configuration
    # www entfernen und ssl erzwingen
    RewriteCond %{HTTP_HOST} ^www\.(.+) [OR]
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]


    Diese Theorie würde allerdings deiner Aussage dazu, welche https-Weiterleitungen aktuell schon funktionieren widersprechen, da du da kein www. stehen hast.

  • Apache Configuration
    # www entfernen und ssl erzwingen
    RewriteCond %{HTTP_HOST} ^www\.(.+) [OR]
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

    Dein Kode leitet den Browser von "www." immer und immer wieder auf "www." weiter. Ich würde die www-Entfernung und die Umleitung auf https trennen und außerdem auf das [L]-Flag weitgehend verzichten.