Zur Navigation

Weiterleitung per .htaccess

1 Damir (Gast)

Hallo,
bin von diesem Forum begeistert, da es mir in den letzten Tagen sehr geholfen hat. Jetzt bin ich aber an einen Punkt gelangt wo ich Hilfe benötige.

Ich habe in meiner .htaccess folgendes stehen:

RewriteRule ^mensch_([0-9]+).html$ mensch.php?o=$1

Das funktioniert auch tadellos, wenn ich mensch_12.html aufrufe benutzt der Server auch die dazugehörige Datei mensch.php?o=12

Jetzt suche ich für die folgende Datei eine Weiterleitung:

leute.php?o=12 die soll an mensch_12.html weitergeleitet werden, wenn diese aufgerufen wird.
Zu beachten ist die Zahl hinter dem =, die muss wie im oberen Beispiel auch weitergeleitet werden, da ich auch eine Weiterleitung für leute.php?o=3 haben möchte, die dann auf mensch_3.html weitergeleitet wird.

Ich hoffe, dass ich es verständlich beschrieben habe.

Ich bin über jeden Tip dankbar.
Gruss.

23.12.2006 13:01

2 Jörg

Hallo Damir,

für diese Weiterleiotung könnte man den Query String in einer RewriteCond auswerten, probier es mal so:

RewriteCond %{QUERY_STRING} ^o=([0-9]+)
RewriteRule ^leute.php http://domain.tld/mensch_$1.html [R=301,L]

23.12.2006 13:39 | geändert: 23.12.2006 13:39

3 Damir (Gast)

Leider funktioniert es nicht.

wenn ich den Code in die .htaccess einfüge und dann die Seite

http://domain.tld/leute?o=12 aufrufe werde ich auf

http://domain.tld/mensch_.html?o=12 weitergeleitet anstatt auf

http://domain.tld/mensch_12.html

Habe jetzt versucht Deinen Code ein wenig zu verändern, aber es ist mir nicht gelungen die richtige Weiterleitung hinzukriegen.

Gruss.

23.12.2006 14:04

4 Jörg

Ja, die Variable muss hier wohl mit einem %1 wiederaufgenommen werden. Probier es mal so:

RewriteCond %{QUERY_STRING} ^o=([0-9]+)
RewriteRule ^leute.php http://domain.tld/mensch_%1.html? [R=301,L]

23.12.2006 14:33

5 Damir (Gast)


Es funtkioniert.

Ich danke Dir für Deine Hilfe. Werde dieses Forum gerne weiterempfehlen!

Gruss.

23.12.2006 14:40

6 Damir (Gast)

Hallo,
vorab wünsche ich allen Lesern und Mitgliedern dieses Forum frohe Weihnachten.

Ich sitze ich vor einem neuen Problem.

Ich möchte folgendes per .htaccess definieren.

Der User gibt in den Browser die Adresse

http://domain.tld/asien/

ein und es wird dann die Seite

http://domain.tld/mensch_12.html

aufgerufen. Im Browser soll aber http://domain.tld/asien/ weiterhin stehen bleiben. Es soll also keine Weiterleitung stattfinden. Da müsste man irgendwas mit RewriteRule schreiben, oder?

24.12.2006 16:38

7 Jörg

Probier es mal mit dieser Rule:

RewriteRule ^asien/$ mensch_12.html

Ohne das R-Flag am Ende bleibt die URL dabei bestehen

PS: Dir auch schöne Feiertage :)

24.12.2006 17:08 | geändert: 24.12.2006 17:12

8 Damir (Gast)

Hi Jörg,
habe Deine empfohlene Rule schon ausprobiert, hat aber nicht funktioniert.

Das folgende funktioniert z.B. einwandfrei in meiner htaccess:

RewriteRule belgien.html$ belgien.php

Aber diese Rule will einfach nicht funktionieren:

RewriteRule ^asien/$ mensch_12.html

Ich weiss nicht woran es liegt.

Gruss.

24.12.2006 22:02

9 Jörg

Je nach Serverkonfiguration wird auch noch die Angabe einer RewriteBase benötigt, damit der Server weiß, auf welchen Pfad sich die Rules beziehen

RewriteBase /
RewriteRule ^asien/$ mensch_12.html

Das folgende funktioniert z.B. einwandfrei in meiner htaccess:

RewriteRule belgien.html$ belgien.php

Dort fehlt das erste Begrenzungszeichen (das ^) - das funktioniert dann auch ohne RewriteBase; allerdings manchmal auch in nicht erwünschten Fällen (ein sued-belgien.html wäre von dieser Rule beispielsweise auch betroffen)

24.12.2006 23:45

10 Damir (Gast)

Guten Abend,

wenn ich folgendes in die htaccess schreibe:

RewriteRule ^asien/$ http://www.domain.tdl/mensch_12.html [R=301,L]

Zeigt der Browser die Adresse http://www.domain.tdl/mensch_12.html an.

Ich will aber, dass der Browser, dann die Adresse http://www.domain.tld/asien anzeigt

Ist das irgendwie machbar?

Gruss.

26.12.2006 23:37