PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : htaccess: Einzelne Seiten dauerhaft redirecten



berny
27.10.2010, 11:25
Hi Leute
Ist immer wieder ein Thema, aber mal auf ein neues in einem eigenen Forum:

Wie kann ich mittels .htaccess einzelne Seiten auf eine andere Adresse redirecten?

Also ich habe die seiten
www.example.com/irgendwas.htm
www.example.com/etwas.htm
und möchte diese auf
www.example.com/unterverzeichnis/wasanderes.php?parameter=zahl (für irgendwas.htm)
www.example.com/unterverzeichnis/nocheinverzeichnis/sowieso.php?parameter=zahl2 (für etwas.htm)

Es ist so gesehen klar, dass jede einzelne Seite auf eine andere einzelne Seite verwiesen wird.
Ich denke, dass man hier mit einem Art array arbeiten könnte, wo quelle=>ziel eingegeben werden könnte.

Geht sowas in der .htaccess überhaupt und wenn ja, wie?

jay-ar
27.10.2010, 15:47
Geht sowas in der .htaccess überhaupt und wenn ja, wie?
Per mysql aus einer db ja. Mit perl habe ich mal vor Jahren so einen Ansatz gesehen. Auf direktem Wege in der .htaccess ist mir nichts bekannt.

jay-ar

berny
27.10.2010, 17:38
OK, vergessen wir mal das mit einer DB
aber geht das nicht direkt im htaccess?

Also wie leite ich eine Seite einfach zur anderen um.

KlausK
27.10.2010, 18:04
Mit 301:

Redirect 301 /sonstwas/irgendwas.htm http://www.example.com/unterverzeichnis/sowas.php?parameter=zahl

Aber ein Array wird in .htaccess nicht funktionieren, weil das nur eine Konfigurationsdatei ist.

Wie das mit PHP gelöst wird, weiß ich leider nicht. :(

berny
27.10.2010, 18:06
ist schon OK, diesen Ansatz werde ich mal nehmen und einfach eine Liste schreiben....
Mal sehen, obs auch richtig funkt

thx

jay-ar
27.10.2010, 18:13
Denk dran, dass die Zeilen von oben nach unten abarbeitet werden. Bei einem Treffer sagst du im letzten Teil der Zeile was damit geschehen soll. Je nach dem was da steht ist dort die Auswertung zu Ende oder es wird weitergemacht. Eine 301 mache ich so.


RewriteRule ^von-datei\.html$ http://www.example.com./nach-datei\.html?parameter=2 [L,R=301]

KlausK
27.10.2010, 18:17
Geht aber nur wenn mod_rewrite auf dem Server aktiviert ist!

berny
23.12.2010, 15:58
Also das ganze funktioniert schon mal ganz gut.

Jetzt habe ich noch eine weitere Aufgabe zu lösen:

Ich möchte alle Seiten eines unterverzeichnisses in ein anderes Unterverzeichnis weiterleiten, wobei die Verzeichnisstruktur bzw die Dateinamen gleichbleiben.

zB
seite/deutsch/page/example.php
seite/deutsch/page/nocheinverzeichnis/example2.php
nach
seite/de/page/example.php
seite/de/page/nocheinverzeichnis/example2.php

Dann sollten noch alle Seiten, die ins Leere gehen würden, auf eine Fehlerseite geleitet werden, zB
seite/de/page/oups.php
wenn es zB die example.php nicht geben würde.

berny
24.12.2010, 15:37
Hier die Lösung:


RedirectMatch 301 /altesverzeichnis/unterverzeichnis/\w+ http://www.example.com/neuesverzeichnis/unterverzeichnis
Redirect 301 /altesverzeichnis http://www.example.com/neuesverzeichnis

Das "unterverzeichnis" ist nur ein Beispiel, wenn zB ein Unterverzeichnis immer gleich wäre.
Ansonsten kann man das weglassen.

Frohe Weihnachten :cool:
ecomservice.de, hier wird Ihnen geholfen!