Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] .htaccess, Problem z przekierowaniem i polskimi znakami
The Night Shadow
post
Post #1





Grupa: Zarejestrowani
Postów: 495
Pomógł: 2
Dołączył: 5.02.2006
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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ść?

Ten post edytował The Night Shadow 8.08.2008, 12:19:23
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
rybik
post
Post #2





Grupa: Zarejestrowani
Postów: 99
Pomógł: 15
Dołączył: 29.07.2006

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował rybik 8.08.2008, 13:19:42
Go to the top of the page
+Quote Post
neverever
post
Post #3





Grupa: Zarejestrowani
Postów: 278
Pomógł: 44
Dołączył: 17.02.2004
Skąd: Wieliczka

Ostrzeżenie: (10%)
X----


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

Ten post edytował neverever 8.08.2008, 13:20:47
Go to the top of the page
+Quote Post
The Night Shadow
post
Post #4





Grupa: Zarejestrowani
Postów: 495
Pomógł: 2
Dołączył: 5.02.2006
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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

Ten post edytował The Night Shadow 8.08.2008, 14:15:29
Go to the top of the page
+Quote Post
Kicok
post
Post #5





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

Ostrzeżenie: (0%)
-----


Wygląda na to, ze dane są escape'owane podwójnie. Spróbuj dodać flagę NE do RewriteRule
Go to the top of the page
+Quote Post
The Night Shadow
post
Post #6





Grupa: Zarejestrowani
Postów: 495
Pomógł: 2
Dołączył: 5.02.2006
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Kicok (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) jesteś wielki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) serdeczne dzięki za wzbogacenie wiedzy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) i rozwiązanie problemu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 19:31