.htaccess Fragezeichen und co.
Sparx
- webserver
Hallo,
ich versuche in der htaceess datei festzulegen das der zugriff auf eine Datei per RewriteRule als parameter für eine im basedir gelegene datei endet.
[CODE]
RewriteRule ^Personen/([^/]+).html /personen.php?wer=$1
[/CODE]
erreichen möchte ich zum beispiel sowas:
zugriff auf /Personen/Vater+&26+Sohn.html
interner zugriff auf: /personen.php?wer=Vater+&26+Sohn
In meinem $_SERVER['QUERY_STRING'] erscheint leider: Vater+&+Sohn
was zur Folge hat, dass meine abfrage von $_REQUEST['wer'] in "Vater " endet.
ich möchte allerdings, dass es endet in "Vater & Sohn".
Was Mache ich falsch?
MfG Sparx.
Hi,
erreichen möchte ich zum beispiel sowas:
zugriff auf /Personen/Vater+&26+Sohn.html
interner zugriff auf: /personen.php?wer=Vater+&26+SohnIn meinem $_SERVER['QUERY_STRING'] erscheint leider: Vater+&+Sohn
was zur Folge hat, dass meine abfrage von $_REQUEST['wer'] in "Vater " endet.
ich möchte allerdings, dass es endet in "Vater & Sohn".
Dann setze mal das Flag B für „escape backreferences“.
http://httpd.apache.org/docs/2.2/en/mod/mod_rewrite.html#rewriterule
MfG ChrisB
Dann setze mal das Flag B für „escape backreferences“.
http://httpd.apache.org/docs/2.2/en/mod/mod_rewrite.html#rewriterule
Hat leider nicht geholfen. Ich bin neu in htaccess, die flags kann ich richtig setzen, keine Sorge. Vieleicht kriege ich es über eine RewriteCond hin oder was kann ich noch versuchen?
Ich habe eine Seite gefunden die mein Problem ziemlich exakt beschreibt und eine für mcht nicht ganz hinnehmbare Lösung bietet:
http://fgiasson.com/blog/index.php/2006/07/19/hack_for_the_encoding_of_url_into_url_pr/
Eine doppelte Nutzung von urlencode() ist keine Option und ich kann nicht in jedem Server die zweite Lösung(recompilen) beibringen...
Ich werde mich mal um die Apacheversion erkundigen.
Hi,
Dann setze mal das Flag B für „escape backreferences“.
http://httpd.apache.org/docs/2.2/en/mod/mod_rewrite.html#rewriteruleHat leider nicht geholfen. Ich bin neu in htaccess, die flags kann ich richtig setzen, keine Sorge.
Aber Probleme besser als mit „hat nicht geholfen“ zu beschreiben, musst du wohl noch üben.
RewriteRule ^Personen/([^/]+).html test.php?wer=$1 [B]
gibt mit bei Aufruf von /Personen/Vater+&26+Sohn.html folgendes bei print_r($_GET) aus:
Array
(
[wer] => Vater+&26+Sohn
)
MfG ChrisB
Schau dir mal folgenden Bug an: https://issues.apache.org/bugzilla/show_bug.cgi?id=34602
Die Ubuntu LTS hat derzeit Apache 2.2.8+sicherheitsupdates im Packetmanager.. also keine Chance.. Weiß jemand ob ich die mod_rewrite einzeln updaten kann?
Und Apache zu updaten und mich damit außerhalb der LTS zu bewegen ist zu riskant/zu viel Arbeit.
Gruß Sparx