Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] .htaccess
Forum PHP.pl > Forum > Przedszkole
The Night Shadow
W .htaccess jest taki wpis:

Cytat
RewriteRule ^projekty_domow/(.+)/(.*)$ http://www.krajobrazy.com.pl/$2 [L]


Podaję w przeglądarkach adres:

Cytat
krajobrazy.com.pl/projekty_domow/ja%B6min/wizualizacja.php?obrazek=http://www.krajobrazy.com.pl/domki/ja%B6min/ja%B6min_widok2b.jpg


Zgodnie z przekierowaniem w .htaccess w przeglądarce Opera, oraz FF następuje przekierowanie na adres:


Cytat
krajobrazy.com.pl/wizualizacja.php?obrazek=http://www.krajobrazy.com.pl/domki/ja%B6min/ja%B6min_widok2b.jpg


Tu jest wszystko ok. Dokładnie ten sam adres wpisany w Internet Explorer 6 i 7 powoduje przekierowanie na błędny adres:


Cytat
krajobrazy.com.pl/wizualizacja.php?obrazek=http://www.krajobrazy.com.pl/domki/ja%25B6min/ja%25B6min_widok1b.jpg


Wniosek z tego jeden. Przekierowanie jako tako zostaje dobrze zastosowane, ale polski zakodowany znak %B6 zostaje zamieniony z jakiegoś powodu na %25B6, a więc po % zostaje dodane 25. Problem ten w IE uniemożliwia poprawny odczyt plików z serwera.

Dlaczego dzieje się to tylko w IE i jak to obejść?
rybik
Przeglądarki różnie kodują znaki, tego nie ominiesz.

Nie stosowac polskich znakow w urlach, tytuły trzeba "spłaszczać" najlepiej tablica podmiany znaków, bo dotychczas żadna prosta funkcja nie potrafi wykonac poprawnej podmiany na bezogonki. Dodatkowo spłaszczone tytuły trzymac albo w oddzielnej tablicy albo razem z artykułem jako alias.

Nie wiem czy to jedyny sposób, wiem, że powszechny w CMSach smile.gif
neverever
Też kiedyś miałem problem z polskimi znakami w urlu i różnym wynikiem w zależności od przeglądarki.
Po wielu próbach doszedłem do rozwiązania które od tamtej pory stosuję.
-ale o ile nie jest to konieczne lepiej nie stosować wcale krzaczków w adresie.

Strona w UTF-8, a otrzymaną getem zmienną traktujesz urldecode()

http://forum.php.pl/index.php?showtopic=92209
The Night Shadow
No tak tylko problem jest taki, że mamy od kilku lat istniejący serwis przeniesiony na nową platformę. Na poprzedniej to działało. Poza tym znak są kodowane za pomocą urlcode i mimo to jest źle

Zna ktoś rozwiązanie?

Kodowanie to niestety iso-8895-2
Kicok
Wygląda na to, ze dane są escape'owane podwójnie. Spróbuj dodać flagę NE do RewriteRule
The Night Shadow
Kicok smile.gif jesteś wielki smile.gif serdeczne dzięki za wzbogacenie wiedzy smile.gif i rozwiązanie problemu 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.