====== .htaccess ======
===== RewriteCond / RewriteRule =====
Voraussetzungen für Redirects:
- Apache-Modul ''mod_rewrite'' aktiviert
- ''RewriteEngine On''
==== Weiterleitung auf HTTPS und ggf. www-Domain ====
In mehreren Zwischenschritten:
# First rewrite to HTTPS:
# Don't put www. here. If it is already there it will be included,
# if not the subsequent rule will catch it.
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Now, rewrite any request to the wrong domain to use www.
# [NC] is a case-insensitive match
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Quelle: [[https://stackoverflow.com/a/13997498/5157290]]
----
==== Weiterleitung von alter Domain auf neue Domain ====
Mit der folgenden Anweisung wird dabei die bisherige Subdomain beibehalten.
* %%www.altedomain.de%% -> %%www.neuedomain.de%%
* shop.altedomain.de -> shop.neuedomain.de
RewriteCond %{HTTP_HOST} ^(.*)altedomain.de [NC]
RewriteRule ^(.*)$ https://%1neuedomain.de/$1 [R=301,L]
----
==== Teilpfad ersetzen ====
Hiermit kann ein URL-Pfad teilweise ersetzt werden.
URL: %%https://www.domain.de/hilfe/restlicher/pfad/%%\\
Ziel: %%https://www.domain.de/support/restlicher/pfad/%%
RedirectMatch 301 /hilfe/(.*) /support/$1
----
==== Einzelne Seiten / URLs weiterleiten ====
Redirect 301 /bisheriger/pfad/ https://www.domain.de/neuer/pfad/
----
==== Datumsfilter mit Monatsnamen weiterleiten ====
Mit dem folgenden Abschnitt lassen sich URLs mit Datumsfilter, z.B. für Newsbeiträge, umleiten. Mit dem regulären Ausdruck ''([0-9]{4})'' wird die gegebene vierstellige Jahreszahl an die Variable ''$1'' übergeben.\\
Außerdem werden in den neuen URLs die Monatsnamen ausgeschrieben.
**Beispiel:**\\
URL: %%https://www.domain.de/alte-artikel/rueckblick/dateFilter/2019/03/%%\\
Ziel: %%https://www.domain.de/artikel/2019/maerz/%%
RedirectMatch 301 /alte-artikel/rueckblick/dateFilter/([0-9]{4})/01/ /artikel/$1/januar/
RedirectMatch 301 /alte-artikel/rueckblick/dateFilter/([0-9]{4})/02/ /artikel/$1/februar/
RedirectMatch 301 /alte-artikel/rueckblick/dateFilter/([0-9]{4})/03/ /artikel/$1/maerz/
RedirectMatch 301 /alte-artikel/rueckblick/dateFilter/([0-9]{4})/04/ /artikel/$1/april/
RedirectMatch 301 /alte-artikel/rueckblick/dateFilter/([0-9]{4})/05/ /artikel/$1/mai/
RedirectMatch 301 /alte-artikel/rueckblick/dateFilter/([0-9]{4})/06/ /artikel/$1/juni/
RedirectMatch 301 /alte-artikel/rueckblick/dateFilter/([0-9]{4})/07/ /artikel/$1/juli/
RedirectMatch 301 /alte-artikel/rueckblick/dateFilter/([0-9]{4})/08/ /artikel/$1/august/
RedirectMatch 301 /alte-artikel/rueckblick/dateFilter/([0-9]{4})/09/ /artikel/$1/september/
RedirectMatch 301 /alte-artikel/rueckblick/dateFilter/([0-9]{4})/10/ /artikel/$1/oktober/
RedirectMatch 301 /alte-artikel/rueckblick/dateFilter/([0-9]{4})/11/ /artikel/$1/november/
RedirectMatch 301 /alte-artikel/rueckblick/dateFilter/([0-9]{4})/12/ /artikel/$1/dezember/
----
==== Weiterleitung nach Browser-Sprache ====
Einfache Weiterleitung auf %%https://www.domain.com/de/%% oder %%https://www.domain.com/en/%%, abhängig von der im Browser eingestellten Sprache.
Die ''RewriteCond''-Regeln stellen sicher, dass nur beim Aufruf der Startseite eine Weiterleitung erfolgt. URLs mit einem query string werden nicht weitergeleitet.
RewriteCond %{REQUEST_URI} ^/$
RewriteCond %{QUERY_STRING} ^$
RewriteCond %{HTTP:Accept-Language} ^(de|en)
RewriteRule ^ https://%{HTTP_HOST}/%1/ [R=301,L,QSA]
Quelle: https://stackoverflow.com/questions/53445594/typo3-v9-5-sites-language-redirects