Wie funktionieren 301 Weiterleitungen in der .htaccess in Shopware 6 (z.B. www + https)?

Hallo,

folgendes habe ich ausprobiert. Es wird zwar korrekt weitergeleitet, aber irgendwie noch ein Dateipfad angehangen (https://www.domain.de//home/usrafgrc/www.domain.de/public/). Gibt es Empfehlungen, wie das in Shopware 6 läuft?

DirectoryIndex index.php


    Options -MultiViews



    RewriteEngine On

    # Rewrite to HTTPS
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://www\.domain\.de/$1 [L,R=301]
    # Rrewrite to www
    RewriteCond %{HTTP_HOST} !^www\.domain\.de$
    RewriteRule ^(.*)$ https://www\.domain\.de/$1 [L,R=301]

    RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
    RewriteRule ^(.*) - [E=BASE:%1]

    # Sets the HTTP_AUTHORIZATION header removed by Apache
    RewriteCond %{HTTP:Authorization} .
    RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    RewriteCond %{ENV:REDIRECT_STATUS} ^$
    RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]

    # If the requested filename exists, simply serve it.
    # We only want to let Apache serve files and not directories.
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^ - [L]

    # Rewrite all other queries to the front controller.
    RewriteRule ^ %{ENV:BASE}/index.php [L]



    
	RedirectMatch 302 ^/$ /index.php/

Vielen Dank vorab,

Christian

Ich hatte das eben testweise mit …

RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

… gelöst. Direkt unter das RewriteEngine On
Klappt das bei Dir?

Schöne Grüße,
Niklas

Ja vielen Dank, so funktioniert es.  Smile

Zusammen mit der www-Umleitung sieht es bei mir jetzt so aus:

RewriteCond %{HTTPS} !=on [or]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ https://www.domain.de%{REQUEST_URI} [L,R=301]

Schöne Grüße,
Christian

Moin,

muss den Thread nochmal hochholen…

Hätte gerne die automatische Weiterleitung auf www im Shop .Geht das irgendwo in den SW6-Settings? Oder muss man das in die htaccess schreiben? Weiterleitung auf https hab ich in den Domaineinstellungen beim Hoster schon drin. Oder schadet das nicht, wenn das auch nochmal in der htaccess hinterlegt ist?

Würde mir ungern was durch eine “falsche” htaccess versauen Wink

Würde es so wie im Code dargestellt ausreichen? Oder einfach so nach RewriteEngine On reinschreiben wie von Christian gepostet?

Gibt es für www.domain.de auch nen Platzhalter, den man einsetzen kann, falls später mehrere Verkaufskanäle laufen sollen?

Danke schon mal für Eure Mühen!

...


    RewriteEngine On

    RewriteCond %{HTTP_HOST} !^www\.
    RewriteRule ^ https://www.domain.de%{REQUEST_URI} [L,R=301]

    RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
    RewriteRule ^(.*) - [E=BASE:%1]

    ... usw.

 

Echt traurig wenig los hier. Vielleicht helfe ich wem dabei, der die Suche benutzt hat.

RewriteCond %{HTTP_HOST} !^www\.(.+)$ [NC]
RewriteRule (.*) https://%1%{REQUEST_URI} [L,R=301]

Erklärung: Mit „(.+)“ sagt man "nimm den ganzen Rest in eine Variable %1, in der Rule nutzt man diesen Wert dann als Domainnamen.

1 „Gefällt mir“