• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

ModRewrite Problem

Jondoe

New member
Ich will eine url in der Form

viewtopic.php?f=12&t=3456
oder
viewtopic.php?f=12&t=3456#p78900

in
index.php?topic=3456

umschreiben. Eigentlich müsste

RewriteRule ^viewtopic\.php?f=([0-9]+)&t=([0-9]+)$ index.php?topic=$2 [L,NC,R]

funktionieren.
Leider schlagen bei dieser aber bisher alle Versuche fehl, sie wird ignoriert, d.h. viewtopic.php?f=12&t=3456 oder viewtopic.php?f=12&t=3456#p78900 bleiben in der Adresszeile stehen und ich bekomme einen Error 404.
Andere Regeln funktionieren.
Wer kann hier helfen?
Warum funktioniert es nicht?
 
schau mal in die logs deines Servers, da sollte eine Fehlermeldung sein, oder keine, wenn mod_rewrite nicht aktiviert/installiert ist
 
@Bieber: mod_rewrite ist aktiviert und funktioniert auch, nur diese RewriteRule nicht.

@kkapsner:
danke, wusste ich bisher nicht und habs dort glatt überlesen.
dash1.gif


1. Lösung:

RewriteCond %{QUERY_STRING} ^f=([0-9]+)&t=([0-9]+)(-([0-9]+))?$
RewriteRule ^viewtopic\.php$ index.php?topic=%2 [L,NC,R]

Jetzt muss ich nur noch das, was ich vom QUERY_STRING nicht haben will (z.B. #p78900), rausbekommen.
 
Zuletzt bearbeitet:
@Junkee: Ich will den Querystring ja nicht an die Ausgabe anhängen, sondern auslesen.


Irgendwie stehe ich jetzt auf dem Schlauch.
Ich bekomme bei der url

viewtopic.php?f=12&t=3456#p78900

nun

index.php?topic=3456#p78900


Kann mir jemand sagen, wie ich #p78900 noch rausbekomme?
 
Warum führt dann
RewriteCond %{QUERY_STRING} ^f=([0-9]+)&t=([0-9]+)(-([0-9]+))$
bei
viewtopic.php?f=3&t=5555#p12345
zu einem Fehler, während
viewtopic.php?f=3&t=5555
funktioniert, weshalb ich
RewriteCond %{QUERY_STRING} ^f=([0-9]+)&t=([0-9]+)(-([0-9]+))?$
benötige, damit beide URLs funktionieren?
 
Zurück
Oben