Umleitung htaccess zu https

Hallo an Alle.

wir haben einen Shop erstellt, der über verschiedene Browser über http:// und http:// erreichbar ist, d.h. die Umleitung in der htaccess zu https funktioniert nicht richtig.

Hier der Inhalt meiner Datei:

`AddHandler php-fastcgi7.4 .php .phtml

BEGIN Shopware

The directives (lines) between „# BEGIN Shopware“ and „# END Shopware“ are dynamically generated. Any changes to the directives between these markers will be overwritten.

DirectoryIndex index.php

Options -MultiViews RewriteEngine On
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]

<IfModule !mod_rewrite.c>

RedirectMatch 302 ^/$ /index.php/

Header set Content-Security-Policy "script-src 'none'" Redirect /de/schilder/beschilderung-wanderwege https://www.schilder-werbetechnik.de/schilder/beschilderung-wanderwege/

END Shopware`

Ich bekomme leider die Umleitung nicht richtig hin und hoffe, dass mir hier jemand helfen kann. In einem anderen Forum habe ich folgenden Code gefunden:

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} !on
RewriteCond %{REDIRECT_HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Danke für eure Hilfe!

Hast du denn den Code auch in die .htaccess Datei gepackt? Sieht für mich so aus als ob du den Code in die falsche Datei geschrieben hast.

Ja, den Code hatte ich an das Ende gepackt, leider war die Seite trotzdem über http:// aufrufbar.

Schau mal hier How to redirect HTTP to HTTPS Using .htaccess
Das ist ziemlich gut erklärt. Im Prinzip machst du dann ein redirect von http auf https

Danke für deine Hilfe. Ich habe es so gemacht, wie im Beitrag beschrieben, leider ohne Änderung. Bei mir im Chrome und Safari sieht es gut aus, im Firefox leider nicht. Hier nochmal der Inhalt meiner .htaccess

DirectoryIndex index.php

Options -MultiViews RewriteEngine On
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]

RewriteCond %{HTTP_HOST} ^schilder-werbetechnik.de [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.schilder-werbetechnik.de/$1 [R,L]

<IfModule !mod_rewrite.c>

RedirectMatch 302 ^/$ /index.php/

Header set Content-Security-Policy "script-src 'none'"

END Shopware

Spätestens

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

fängt alles ab, daher kann es „danach“ gar nicht funktionieren.
Wenn Chrome was macht, tippe ich eher auf Browser-Cache. 301 von ohne www auf mit www cached der nämlich.
So eine Regel gehört ganz an den Anfang.
Force-SSL würde ich eh eher beim Hoster in den Verwaltungstools einschalten.