Htaccess RewriteRule greift nicht
Hallo zusammen,
ich habe einige Tutorials durchgelesen, aber irgendwie bekomme ich es nicht hin, meine konkrete RewriteRule umzusetzen (die in den Beispielen funktionierten immer, waren vom Aufbau her aber auch "anders" als bei mir).
Und zwar habe ich in meinem web-Ordner einen Ordner mitglieder, darin eine kleine Oberfläche für eingeloggte Mitglieder. Wenn eines der Mitglieder auf den "Kontakt"-Link klickt möchte ich es jedoch nicht auf ein Kontakt-Formular innerhalb des Mitgliederbereich weiterleiten, sondern auf die allgemeine Kontaktseite im web-Ordner (untetr web/impressum/kontakt.php). Das Menü in dem Mitgliederbereich wird automatisch aufgebaut und ich habe nur bedingt Einfluss darauf, weshalb ich das die beste Möglichkeit fände über .htaccess zu machen,
Ich müsste also in der .htaccess-Datei die in web/mitglieder liegt eine RewriteRule anlegen, die
member?state=contact
auf
/impressum/kontakt.php
umleitet.
Hierfür habe ich u.a. das hier probiert:
RewriteRule ^member.php/?state=kontakt /impressum/kontakt.php [R=301,L]
Das greift aber gar nicht.Escape ich das "?" irgendwie falsch oder wo liegt denn bitte genau mein Fehler?
Für Hilfe wäre ich sehr dankbar.
Vielen Dank und viele Grüße,
Dirk
ich habe einige Tutorials durchgelesen, aber irgendwie bekomme ich es nicht hin, meine konkrete RewriteRule umzusetzen (die in den Beispielen funktionierten immer, waren vom Aufbau her aber auch "anders" als bei mir).
Und zwar habe ich in meinem web-Ordner einen Ordner mitglieder, darin eine kleine Oberfläche für eingeloggte Mitglieder. Wenn eines der Mitglieder auf den "Kontakt"-Link klickt möchte ich es jedoch nicht auf ein Kontakt-Formular innerhalb des Mitgliederbereich weiterleiten, sondern auf die allgemeine Kontaktseite im web-Ordner (untetr web/impressum/kontakt.php). Das Menü in dem Mitgliederbereich wird automatisch aufgebaut und ich habe nur bedingt Einfluss darauf, weshalb ich das die beste Möglichkeit fände über .htaccess zu machen,
Ich müsste also in der .htaccess-Datei die in web/mitglieder liegt eine RewriteRule anlegen, die
member?state=contact
auf
/impressum/kontakt.php
umleitet.
Hierfür habe ich u.a. das hier probiert:
RewriteRule ^member.php/?state=kontakt /impressum/kontakt.php [R=301,L]
Das greift aber gar nicht.Escape ich das "?" irgendwie falsch oder wo liegt denn bitte genau mein Fehler?
Für Hilfe wäre ich sehr dankbar.
Vielen Dank und viele Grüße,
Dirk
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 277067
Url: https://administrator.de/contentid/277067
Ausgedruckt am: 23.11.2024 um 19:11 Uhr
4 Kommentare
Neuester Kommentar
Moin,
Das hier sollte funktionieren
Einfach mal die Doku lesen, und schon bist du schlauer ...
http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule
Gruß jodel32
Das greift aber gar nicht.Escape ich das "?" irgendwie falsch oder wo liegt denn bitte genau mein Fehler?
das auch, aber dein Fehler liegt hier darin das bei RewriteRule nur der Pfad ohne Querystring(alles ab dem Fragezeichen) ausgewertet wird! Diesen prüfst du stattdessen mit RewriteCond.Das hier sollte funktionieren
RewriteEngine On
RewriteCond %{QUERY_STRING} ^state=kontakt$
RewriteRule ^member\.php$ /impressum/kontakt.php [R=301,QSD,L]
http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule
Gruß jodel32
Die QSB-Anweisung konnte ich übrigens nirgends finden
QSD = QueryString Discard !!Steht ebenfalls auf der verlinkten Seite.
Dieser Flag geht erst ab Apache 2.4.0
This flag is available in version 2.4.0 and later.