# nur partieller Mod revrite in einer URL



## SarDuri (22. März 2007)

Hallo
Ich bin neu hier im Forum. Lange suche ich nun schon nach einer Antwort. Hier scheint es wenigstens ein paar Leute zu geben die mir helfen können. Das wäre nett....
Zu meinem Problem:
Auf einer Website entstehen manchmal (programmnotwendigerweise) im GET Teil ein Leerschlag. Das ist soweit kein Problem. Google daraus einfach ein %20.
Soweit so gut. Das Problem ist nun, dass beim klick auf den Link im Suchergebnis das % seinerseits mit %25 maskiert. 
Dann wird aus meinem Leerschlag %2520 was nun meine PHP Datei gar nicht so sexy findet, und - oh Wunder mit einem Fehler reagiert.
Die für mich eleganteste Lösung wäre jetzt, wenn die .htaccess %2520 einfach in %20 umschreiben könnte. Aber ich verstehe vom mod revrite Code nicht sehr viel :-( , und finde keine passenden Sources im Netz. Geht das überhaupt, und wenn ja wie?


----------



## Radhad (23. März 2007)

Eiegentlich ist ein Leerzeichen in einerURL nicht zulässig. Vielleicht solltest du dein Script so anpassen, dass Leerzeichen durch _ ersetzt werden oder einfach die Zeichen zusammengeschrieben werden, dann entsteht das Problem erst garnicht und du bleibst immer im grünen Bereich!


----------



## SarDuri (23. März 2007)

Danke. Das weiss ich natürlich. Leider habe ich hier keine bessere Lösung gefunden. Sonst müsste ich alle eingegebenen Inhalte zuerst ausparsen. Und da scheue ich den Skript Aufwand etwas...
Ich fange den Fehler zwischenzeitlich im php Script ab. Aber mit der .htaccess könnte ich das halt viel eleganter lösen. weil ich den Besucher dann per 301 direkt an den den richtigen Ort schicken könnte, ohne dass er etwas davon merkt.


----------



## Mamphil (23. März 2007)

Hallo,

irgendwie kann ich deine Beschreibung nicht ganz nachvollziehen.
Es ist Standardprozedur, dass Leerzeichen in URLs durch ein Plus oder durch %20 ersetzt (urlencoded) werden.
Wenn das Prozentzeichen auf deinem Server wieder codiert wird, ist im Script ganz einfach ein urlencode(...) (PHP) o. ä. zu viel.

In meinen Augen wäre die Anwendung von mod_re*w*rite (mit w) mit Kanonen auf Spatzen schießen...

Mamphil


----------



## SarDuri (23. März 2007)

Hmmm.
Ein urlencode zu viel?....
Also nicht bei mir im script.
Kann das eventuell irgendwo in den globalen Servereinstellungen stehen?
Andererseits habe ich gesehen, dass Google selbst, gewisse Urls in zwei Versionen führt: einmal korrekt %20 und einmal %2520... Ich bin mir also nicht ganz sicher, dass der Fehler auf meinem Server entsteht (apart von der zugegebenermassen unschönen Situation mit dem Leerzeichen im GET.....) 
mod rewrite (was für ein dummer Fehler....) danke :-(


----------



## TchiboMann (27. März 2007)

mod_rewrite bringt dir da in dem fall nix, du musst wohl oder übel dein script umcoden und das leerzeichen durch ein _ ersetzen, denn mod_rewrite leitet einen Aufruf einer Seite blos an ein script weiter, kann aber keine urls aus einem script herausfiltern und korrigieren... 

sprich: du müsstest jede url in die htaccess eintragen und separat weiterleiten lassen... iss en bisele aufwändig find ich 

zumindest, wenn ich das richtig sehe, mag sein dass es was gibt was ich bei mod_rewrite noch nich kenne... who knows, ich denk es iss besser die url zu "cleanen" und das leerzeichen durch ein _ zu ersetzen, damit haste ja nur einmal etwas mehr aufwand, dann nie wieder


----------

