Zur Navigation

Umleitung auf neue Subdomain aber ohne Index.php

1 Markus.w (Gast)

Hallo alle zusammen,

Ich habe unsere Domain http://NaturalStone.ch bez. http://www.NaturalStone.ch auf einen neuen Subdomain http://Granit.NaturalStone.ch verschoben.

Auf http://NaturalStone.ch wollen wir jetzt ein WordPress Web aufbauen.

Da viele Links auf unsere Seiten zeigen, möchte ich eine 301 Umleitung auf das verschobene Web http://Granit.NaturalStone.ch einrichten.

Dazu habe ich folgendes für die htaccess vorgesehen:

RewriteEngine On
RewriteCond %{HTTP_HOST}  !^http://naturalstone.ch [NC]
RewriteRule ^(.*)$ http://granit.naturalstone.ch/$1 [R=301,L]

Was passiert nun mit existierenden Dateien, wie index.php? Wird die auch umgeleitet oder wird die angezeigt?

Ich frage, weil wir den Umzug noch nicht vollzogen haben und ich mögliche Fehler noch vorher korrigieren könnte...

Vielen Dank für Hinweise

11.09.2018 15:46

2 Jörg Kruse

Damit leitet Ihr pauschal alle URLs weiter, auch künftige WordPress-URLs. Was für ein Permalink-Struktur wollt Ihr denn in WordPress verwenden?

Und wie schauen die alten URLs aus? Für eine einfache Weiterleitungsregel bräuchte es ein Unterscheidungsmerkmal. Ideal wäre es z.B. wenn diese alle die Endung .html haben, dann könnte man gezielt nur diese URLs weiterleiten.

Wenn es keine solchen Merkmale gibt, muss man die (wichtigsten) URLs einzeln weiterleiten.

11.09.2018 16:53

3 Markus.w (Gast)

Hallo Jörg, vielen Dank für Deine Antwort.
Uf, das ist ganz schön schwierig wie ich sehe. Hmm...

Gibt es keine Möglichket nach dem Motto

wenn die Datei angefragte nicht existiert, leite auf Granit.NaturalStone.ch um mit dem gleichen Dateinamen. sonst zeige die Datei an.

Stirnrunzelnd fragend... und dankend...
Markus

11.09.2018 19:08

4 Jörg Kruse

wenn die Datei angefragte nicht existiert

Mit dieser Bedingung arbeitet bereits der .htaccess Code von WordPress, um "Pretty Permalinks" umzuschreiben (deren Pfade ja auch nicht real im Dateisystem existieren). Es sei denn, Ihr verzichtet auf die Pretty Permalinks: wenn die Standard-WordPress-URLs nicht umgeschrieben werden, könnte man die index.php von einer Weiterleitung auf die Subdomain ausnehmen.

12.09.2018 10:47 | geändert: 12.09.2018 10:50

5 Markus.w (Gast)

Guten Abend, ich bin meiner Lösung ein schönes Stück näher gekommen.

RewriteRule (.*) http://granit.naturalstone.ch/$1 [R=301,L]

Leitet jetzt zuverlässig alle Seiten um.

Leider werden ALLE Seiten umgeleitet.Also auch die Seiten, welche vorhanden sind. Sprich die index.php.

Wie kann ich eine Regel definieren, dass die index.php vin dieser Umleitung ausgeschlossen wird?

Vielen Dank für Hilfe.

12.09.2018 18:13

6 Jörg Kruse

RewriteCond %{REQUEST_URI} !index\.php
RewriteRule (.*) http://granit.naturalstone.ch/$1 [R=301,L]

Funktioniert wie gesagt aber nur, solange keine "Pretty Permalinks" definiert sind

12.09.2018 18:25

7 Markus.w (Gast)

Hallo Jörg
Mega dank für Deine Hilfe. Aber es scheint, als ob das ignoriert wird.
Gibt es eine "Wartezeit" bis die htaccess berücksichtigt wird?

Folgendes habe ich jetzt geschrieben.

RewriteEngine On
RewriteCond %{REQUEST_URI} !index\.php
RewriteRule (.*) https://granit.naturalstone.ch/$1 [R=301,L]


Wenn ich eine html Datei über NaturalStone.ch aufrufe, dann wird die auf die Subdomain granit weiter geleitet. So wie ich es haben möchte.
ABER wenn ich die index.php ausgeführt haben möchte, ein WordPress Web ohne Perma links, dann wird die nicht ausgeführt sondern es erscheint mir die granit.naturalstone.ch/index.html...

Was könnte ich noch falsch haben?

Viele Grüsse

12.09.2018 18:58

8 Markus.w (Gast)

Dann habe ich folgendes probiert, aber das leitet nicht um sondern gibt ein 404.

Redirect 301 ^(.*)\.htm$ https://granit.naturalstone.ch/$1
Redirect 301 ^(.*)\.html$ https://granit.naturalstone.ch/$1

Was ist daran falsch?

12.09.2018 19:09

9 Jörg Kruse

Mega dank für Deine Hilfe. Aber es scheint, als ob das ignoriert wird.
Gibt es eine "Wartezeit" bis die htaccess berücksichtigt wird?

Nein, .htaccess Dateien werden zur Laufzeit ausgewertet. Es kann aber sein, dass dein Browser die Weiterleitung aus dem Cache lädt. Nach jeder Änderung der .htaccess Datei empfiehlt es sich vorm Testen, den Browser-Cache zu leeren.

Dann habe ich folgendes probiert, aber das leitet nicht um sondern gibt ein 404.

Redirect 301 ^(.*)\.htm$ https://granit.naturalstone.ch/$1
Redirect 301 ^(.*)\.html$ https://granit.naturalstone.ch/$1

Was ist daran falsch?

Du mischt da mod_rewrite und mod_alias Syntax. Wenn du URLs mit der Endung .htm oder .html weiterleiten möchtest, dann so mit mod_rewrite:

RewriteRule ^/?(.+\.html?)$ https://granit.naturalstone.ch/$1 [L,R=301]

12.09.2018 19:30

10 Markus.w (Gast)

Guten Abend Jörg.

ich möchte mich bei Dir ganz herzlich bedanken. Für Dein Fachwissen und Deine Geduld. Du hast mir perfekt weiter geholfen. Danke Dir.

Gerne würde ich Dich bei mir im Tessin zu einem kleinen Apero einladen wenn Du demnächst Ferien im sonnigsten Teil der Schweiz machst.

Kontaktdaten bekommst Du gleich.

Besten Dank und allerliebste Grüsse nach Göttingen.
Gruss Markus

12.09.2018 20:30

Beitrag schreiben (als Gast)

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





[BBCode-Hilfe]