Zur Navigation

Neue Unterseiten-URLs in Wordpress, Umzug mit 301

1 Martin

Hallo,
ich ziehe mit zwei alten kleinen statischen Sites auf Wordpress um. Hoster bleibt der gleiche. Die Domains beider Sites werden ebenfalls gleich bleiben, die URLs sämtlicher Unterseiten ändern sich aber nach folgendem Muster:
www.example.de/schuhe-und-socken.html zu www.example.de/schuhe-und-socken
.html fällt also ersatzlos weg. Zukünftige neue Seiten werden ebenfalls keines haben (warum machen das heute noch immer so viele?)


Website 1 hat nur solche URLs: www.example.de/schuhe-und-socken.html
Website 2 hat solche URLs wie Website 1, aber zusätzlich noch ein Verzeichnis, also auch ca. 20 solche URLs:
www.example.de/verzeichnis/shirts-und-hosen.html

Das zukünftige Wordpress-Root-Verzeichnis ist nicht der Account-Root "/", sondern ein extra Verzeichnis darunter bzw. im Account-Root.

Welcher der folgenden Codes, die ich gegoogelt habe, passt für meinen Fall (am besten), für beide oder eine der beiden Sites?

 
RewriteRule ^([\w-]+)\html$ $1 [R=301,L] 

RewriteRule ^([\w-]+)\.html$ /index.php?$1 [R=301,L] 

RewriteRule ^([\w-]+)\.html$ http://www.example.de/$1 [R=301,L] 


Danke.



Martin

02.10.2014 13:49 | geändert: 02.10.2014 13:50

2 Jörg Kruse

$1 nimmt den geklammerten Ausdruck ([\w-]+) wieder auf, also ist diese Regel wohl für Website 1 angemessen:

RewriteRule ^([\w-]+)\.html$ http://www.example.de/$1 [R=301,L] 

Wenn im Falle der Website 2 das (virtuelle) Unterverzeichnis erhalten bleiben soll, reicht es, das "/" mit in die Zeichenklasse aufzunehmen:

RewriteRule ^([\w/-]+)\.html$ http://www.example.de/$1 [R=301,L] 

Das zukünftige Wordpress-Root-Verzeichnis ist nicht der Account-Root "/", sondern ein extra Verzeichnis darunter bzw. im Account-Root.

Ich weiß nicht, was mit Account-Root gemeint ist - das oberste Verzeichnis, auf das du per FTP Zugriff hast? Maßgeblich für die mod_rewrite Regeln ist der DocumentRoot der jeweiligen Domain.

02.10.2014 17:53 | geändert: 02.10.2014 17:54

3 Martin

Ich habe gerade hier in einem anderen Thread gelesen, dass bei 301 das Ziel als volle URL mit http angegeben werden solle. Deshalb kommt nur die dritte Variante in Frage?

Das Verzeichnis bei Website 2 ist ein echtes, d.h., wenn ich per FTP meine Site beim Hoster besuche, dann sehe ich ganz oben ein Verzeichnis ohne Namen, nur "/". Das meinte ich mit Account-Root (wie nennt man das?).

In diesem bzw. "darunter" sind dann fünf Verzeichnisse:
-website1
-website2
-errorlogs
-logs
-statistik

In "website2" sind dann neben html-Dateien, 1 PDF, 2 .docs, htaccess, robots.txt, WMT-Verif.-Datei und zukünftig Favicon drei echte Verzeichnisse:
-grafiken
-css
-"verzeichnis", in dem die erwähnten 20 Dateien sind:
www.example.de/verzeichnis/shirts-und-hosen.html ect.

Bleibt es bei der von dir vorgeschlagenen Slash-Ergänzung, wenn es nicht nur ein virtuelles, sondern auch ein echtes Verzeichnis ist?

Wenn es keine guten Gründe dagegen gibt, würde ich es bei dieser Verz.-Struktur belassen.
Im Hinblick auf das WP-Installationsverz. (WP-root), das mein Hoster nicht im "Account-Root" haben will, habe ich eh keine Wahl.

Martin

02.10.2014 19:45

4 Jörg Kruse

Ich habe gerade hier in einem anderen Thread gelesen, dass bei 301 das Ziel als volle URL mit http angegeben werden solle. Deshalb kommt nur die dritte Variante in Frage?

Nicht nur deswegen. Die zweite leitet auf die index.php weiter. Wenn ich dich richtig verstanden habe, möchtest du aber auf www.example.de/schuhe-und-socken weiterleiten.

wenn ich per FTP meine Site beim Hoster besuche, dann sehe ich ganz oben ein Verzeichnis ohne Namen, nur "/". Das meinte ich mit Account-Root (wie nennt man das?).

Vielleicht FTP-User-Verzeichnis.

Bleibt es bei der von dir vorgeschlagenen Slash-Ergänzung, wenn es nicht nur ein virtuelles, sondern auch ein echtes Verzeichnis ist?

Ja.

Wenn es keine guten Gründe dagegen gibt, würde ich es bei dieser Verz.-Struktur belassen.
Im Hinblick auf das WP-Installationsverz. (WP-root), das mein Hoster nicht im "Account-Root" haben will, habe ich eh keine Wahl.

Relevant für den Webserver und somit auch die mod_rewrite Regeln sind die DocumentRoot-Verzeichnisse, also website1, website2. Das darüber liegende Verzeichnis ist nur für den FTP-Server relevant. Der Webserver weiß nichts davon, welche Verzeichnisse du per FTP erreichst.

02.10.2014 23:19

1 Forenmitglied fand diesen Beitrag gut

5 Martin

Wenn ich dich richtig verstanden habe, möchtest du aber auf www.example.de/schuhe-und-socken weiterleiten.

Ja, wobei das nur ein Beispiel ist. Alle Unterseiten-URLs sollen mit Wordpress kein "Anhängsel" mehr haben.

Könnte ich den Code "mit Slash" auch für Website 1 verwenden, also mit dem einen Code beide Fälle abdecken oder besser nur für Website 2 und für Website 1 "ohne Slash"?

Ich werde zwei Test-Verzeichnisse anlegen und auf Subdomains legen: "website1-test" und "website2-test", auf der gleichen Verz.-Ebene wie website1 und 2.
Wenn alles passt, dann umziehen. Also entweder den Testverz. die richtigen Domains geben oder in die jetzigen Verz. die WP-Installation reinkopieren.

Wie auch immer, die neue .htaccess für die Wordpress-Sites muss ich dann sofort nach dem Umzug hochladen und sollte auch schon perfekt funktionieren, oder?

Was das FTP-User-Verz. angeht: ich dachte, ich erwähne es mal. Vielleicht spielt es bei der ganzen Sache eine Rolle. Alle reden immer nur vom "Wordpress-Root-Verz.", aber abhängig vom Hoster kann das sowohl das FTP-User-Verz. als auch ein eigenes Verz. darunter sein. Und weil es bei diesem Code auch um Verz. geht...




Martin

03.10.2014 01:48 | geändert: 03.10.2014 01:57

6 Jörg Kruse

Könnte ich den Code "mit Slash" auch für Website 1 verwenden, also mit dem einen Code beide Fälle abdecken oder besser nur für Website 2 und für Website 1 "ohne Slash"?

Ja, die Zeichenklasse [\w/-] besagt ja nicht, dass alle enthaltenen Zeichen vorkommen müssen, sondern, dass nur die enthaltenen Zeichen vorkommen dürfen.

Wenn du aber sicher gehen möchtest, dass keine Verzeichnisse weitergeleitet werden, solltest du den Slash rausnehmen.

03.10.2014 23:30 | geändert: 03.10.2014 23:31

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]