- *Wie* *genau* gibst du den Inhalt des GET-Parameters aus?
- print_r($_SERVER) ergibt was? (relevante Bestandteile)
Hallo,
ich habe jetzt mal ne ganz einfache Testpage erstellt, die test.php. Der Inhalt sieht so aus:
<?
echo $_GET['var'];
?>
Nun kann man diese einmal so aufrufen:
test.php?var=Bremen+%26+Oldenburg
Oder auch so:
test_Bremen+%26+Oldenburg.html
Der Eintrag in der .htaccess sieht so aus:
RewriteEngine on
RewriteRule test_(.*).html$ test.php?var=$1
Die Seite hab ich online gestellt:
Ohne mod_rewrite: http://87.106.49.169/test.php?var=Bremen+%26+Oldenburg
Mit mod_rewrite: http://87.106.49.169/test_Bremen+%26+Oldenburg.html
Da sieht man die Problematik auch...
Die rewrite_log sieht so aus:
applying pattern 'test_(.*).html$' to uri 'test_Bremen+&+Oldenburg.html'
rewrite 'test_Bremen+&+Oldenburg.html' -> 'test.php?var=Bremen+&+Oldenburg'
uri=test.php, args=var=Bremen+&+Oldenburg
add per-dir prefix: test.php -> C:/Web/WebPages/WebChatSolutions/htdocs/test.php
strip document_root prefix: C:/Web/WebPages/WebChatSolutions/htdocs/test.php -> /test.php
internal redirect with /test.php [INTERNAL REDIRECT]
strip per-dir prefix: C:/Web/WebPages/WebChatSolutions/htdocs/test.php -> test.php
applying pattern 'test_(.*).html$' to uri 'test.php'
pass through C:/Web/WebPages/WebChatSolutions/htdocs/test.php
Man sieht, dass er aus dem %26 in der URL direkt ein &-Zeichen gemacht hat. Das dürfte das Problem sein... aber ich frage mich, wieso er %26 in ein & umwandelt, wo ich es doch extra mit urlencode() maskiert habe, damit es KEINE probleme gibt...
Grüße
Chris