Zur Navigation

php-Dateien weiterleiten nach Umstellung auf WordPress

1 Edi (Gast)

Hallo Jörg,

ich habe 3 Unterverzeichnisse in denen ursprünglich php-Dateien waren.

zB.
www.meinedomain.com/de/datei-de1.php
www.meinedomain.com/es/datei-es1.php
www.meinedomain.com/en/datei-en1.php

Nun habe ich auf wordpress umgestellt und ich brauche nun in der htaccess dafür eine 301 Weiterleitung auf

zB.
www.meinedomain.com/de/datei-de1/
www.meinedomain.com/es/datei-es1/
www.meinedomain.com/en/datei-en1/

Kannst du mir bitte einen Tipp geben?

28.06.2019 17:04

2 Jörg Kruse

Probier mal damit in der .htaccess Datei oberhalb des WordPress Codes:

RewriteRule ^(de|es|en)/(.+)\.php$ https://%{HTTP_HOST}/$1/$2/ [L,R=301]

28.06.2019 17:18

3 Edi (Gast)

Super, funktioniert beinahe perfekt!

Vielen Dank, Jörg!

Bei einem Punkt gehts noch nicht, nämlich bei der index.php

zB:
www.meinedomain.com/de/index.php
www.meinedomain.com/es/index.php
www.meinedomain.com/en/index.php

Hier brauche ich nun in der htaccess dafür eine 301 Weiterleitung auf

zB.
www.meinedomain.com/de/
www.meinedomain.com/es/
www.meinedomain.com/en/

LG Edi

01.07.2019 09:33

4 Jörg Kruse

Die muss man vorher schon weiterleiten, damit sie durch den allgemeineren Redirect nicht erfasst werden:

RewriteRule ^(de|es|en)/index\.php$ https://%{HTTP_HOST}/$1/ [L,R=301]
RewriteRule ^(de|es|en)/(.+)\.php$ https://%{HTTP_HOST}/$1/$2/ [L,R=301]

01.07.2019 10:10

5 Edi (Gast)

Perfekt, vielen Dank!

Nun noch ein Problem:

Ich habe vorher die Länderdomain DE gehabt.

Nun heißt das neue Verzeichnis DE-CH

zB:
www.meinedomain.com/de/datei-de1.php
www.meinedomain.com/de/index.php

Hier brauche ich nun in der htaccess dafür eine 301 Weiterleitung auf

www.meinedomain.com/de-ch/datei-de1/
www.meinedomain.com/de-ch/

01.07.2019 10:19

6 Jörg Kruse

Ich habe vorher die Länderdomain DE gehabt.

Du meinst das Verzeichnis /de/ ? Domain wäre z.B. www.example.com

Da sich die beiden Regeln dann nur auf "es" und "en" beziehen, solltest du entsprechend das "de" aus der Auswahl (de|es|en) rausnehmen.

"de" muss dann separat weitergeleitet werden:

RewriteRule ^de/index\.php$ https://%{HTTP_HOST}/de-ch/ [L,R=301]
RewriteRule ^de/(.+)\.php$ https://%{HTTP_HOST}/de-ch/$1/ [L,R=301]

01.07.2019 11:05 | geändert: 01.07.2019 11:08

7 Edi (Gast)

Vielen Dank, Jörg!
Du bist hier wirklich der Beste!

Eine finale Dache habe ich noch:
Ich möchte einige php Dateien unter einem neuen Namen in Wordpress haben.

zB:
www.meinedomain.com/de/datei-alt.php

Hier brauche ich nun in der htaccess dafür eine 301 Weiterleitung auf

zB.
www.meinedomain.com/de/datei-neu/

Diese dazu benötige Definition in der htaccess: wie würde diese aussehen und an welche Position gehört sie dann hin?

01.07.2019 11:38

8 Jörg Kruse

Du hast ja bereits eine Einzelweiterleitung:

RewriteRule ^de/index\.php$ https://%{HTTP_HOST}/de-ch/ [L,R=301]

Analog zu index.php kannst du auch datei-alt.php weiterleiten, wobei du hinten an die Ziel-Url noch den Pfad datei-neu/ anfügst.

Spezielle Regeln, wie z.B. Einzel-Redirects, sollten vor allgemeineren Regeln ausgeführt werden - zur Reihenfolge von mod_rewite Rules siehe auch:

https://jkip.de/howtos/mod_rewrite-reihenfolge

01.07.2019 14:13

9 Edi (Gast)

Danke!

das heißt für das Beispiel:
www.meinedomain.com/de/datei-alt.php

Hier brauche ich nun in der htaccess dafür eine 301 Weiterleitung auf
www.meinedomain.com/de/datei-neu/

RewriteRule ^de/datei-alt\.php$ https://%{HTTP_HOST}/de/datei-neu/$1 [L,R=301]

Richtig?

02.07.2019 10:14

10 Jörg Kruse

Das $1 am Ende kannst du weglassen. Das ist eine Variable, die den ersten geklammerten Ausdruck wieder aufnimmt (wie in den obigen Beispielen "(.+)" oder "(es|en)"). Den hast du in dem Fall ja nicht.

02.07.2019 10:28 | geändert: 02.07.2019 10:34