Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Urlencode a + i /
Forum PHP.pl > Forum > PHP
ucho
W sumie nie jestem pewien czy to co obserwuje to wina jakiś ustawień apacha, modrewrite czy po prostu standardowe zachowanie duetu apache2+php, więc wolę się zapytać bardziej doświadczonych ludzi smile.gif
Przekazuje sobie za pomocą GET różne opcje do wyszukiwarki. Wszystko traktuje za pomocą urlencode (po stronie serwera lub klienta) i działa to ok, z dwoma wyjątkami: '+' i '/'.
Jeśli '+' zakoduje jako '%2B to w $_GET otrzymuje ' ' - czyli coś zdekodowało ten jeden jedyny znak na '+' a następnie '+' na ' '. Rozwiązaniem jest zakodowanie jako '%252B' ale wydaje mi się cokolwiek dziwne, ze są potrzebne aż takie kombinacje.
Podobnie dziwnie zachowuje się '/' - otóż kiedy przekaże go jako '/' to działa... a przy zakodowaniu jako '%2F' ( co robi przecież urlencode) apache chyba traktuje część adresu a nie query i zwraca 404.
Proszę o wyjaśnienie dlaczego tak się dzieje i z czego to wynika, bo zapewne tak ma to działać, tylko ja nie wiem dlaczego smile.gif
ucho
E tam, (raw)urlencode robią dokładnie to o co chce, więc nawet nie przyglądałem sie im bliżej. I to pewnie był błąd bo w komentarzach ktoś zamieścił link: http://issues.apache.org/bugzilla/show_bug.cgi?id=34602 <- czyli to jednak błąd w mod_rewrite
I jeszcze błąd w mojej konfiguracji - nie wiedziałem że coś takiego jak "AllowEncodedSlashes" istnieje smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.