Zum Inhalt springen

Nach URL-Fehlerbeu Umstellung auf https

Erstellt am 13. Mai 2018 · 2 Antworten · letzte Antwort am 18. Mai 2018

Tags: RealURL, URLs & Routing, TYPO3 4.x, Frage

D-Jay ·

Ich habe folgendes Problem:
Habe meine Webseite auf https umgestellt. Alles funktioniert soweit ganz gut, wenn ich https://www.webseite.de eingebe.
Wenn ich aber in die Adresszeile des Browsers www.meine-webseite.de eingebe, werde ich auf
https://www.webseite.de//index.php umgeleitet.

Eigentlich sollte es so aussehen:
https://www.webseite.de/index.html ;
Das Problem sind die zwei Slashes sowie das PHP am Ende.

Das htaccess sieht so aus:
# Real URL
RewriteEngine On
RewriteRule ^typo3$ - [L]
RewriteRule ^typo3/.*$ - [L]
RewriteRule ^uploads/.*$ - [L]
RewriteRule ^fileadmin/.*$ - [L]
RewriteRule ^typo3conf/.*$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* /index.php

# Erzwinge www Duplicate Content vermeiden
RewriteCond %{HTTP_HOST} !www\.webseite\.de$
RewriteRule ^(.*)$ http://www.webseite.de/$1 [L,R=301,QSA]

# Auf https umschalten
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]

Vielen Dank für eure Hilfe im Voraus!
Grüße aus Köln

pstranghoener ·

Hey D-Jay, ich hab mir nochmal Zeit genommen.

In der allerletzten Rule zu https ist das Slash vor dem Parameter $1 meiner Meinung nach zu viel. Evtl. könnte dir auch dieser Ausdruck weiterhelfen.
Es gibt auch noch andere Varianten auf https umzuleiten z.B.:

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Best practice wäre die Dateiendungen via .htaccess zu verbergen:

#unless directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [R=301,L]

#resolve .php file for extensionless php urls
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [L]

#redirect external .php requests to extensionless url
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([^/]+/)*[^.#?\ ]+\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(([^/]+/)*[^.]+)\.php /$1 [R=301,L]

Grüße
Philipp