Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [htaccess]Polskie znaki - przepchnięcie przez htaccess bez pliku routującego
thek
post 4.03.2011, 12:36:41
Post #1





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Rzadko piszę, a to mnie niestety ugryzło i zastanawiam jak to obejść. Mam regułkę w htaccess, która w wyniku ma dać przekierowanie na link nie dość że z polskimi znakami, to jeszcze spacją:
[APACHE] pobierz, plaintext
  1. RewriteRule ^hotele_w_szklarskiej_porebie.php/?$ /obiekty/miasto_Szklarska Poręba [R=301,L]
[APACHE] pobierz, plaintext

Oczywiście reguła wysypuje htaccess jak złoto i widzę 500. To jak ugryźć spację wiem, wystarczyło ująć wynikowy w nawiasy
[APACHE] pobierz, plaintext
  1. RewriteRule ^hotele_w_szklarskiej_porebie.php/?$ "/obiekty/miasto_Szklarska Poręba" [R=301,L]
[APACHE] pobierz, plaintext

Spację łyknęło. Problem jest teraz z kodowaniem niestety spacja jak i "ę" są w locie urlenkodowane. Nie pomaga dodawanie flagi NE -> olewa ją. W efekcie przeglądarka wypluwa:
  1. obiekty/miasto_Szklarska%20Por%eaba

a nie tego chcę. Ma być ładnie
  1. obiekty/miasto_Szklarska Poręba

Chciałbym uniknąć pisania routera by przychwytywał taki adres lub podobne, przetwarzał i dopiero pluł dalej bo nie widzę sensu, tylko z powodu kodowania, puszczać go przez kolejnego pośrednika.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
erix
post 4.03.2011, 20:52:19
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




To że przeglądarka to wypluwa, to już nie wina serwera, z tego co się orientuję.

I najważniejsze - jakiego kodowania używasz do polskich krzaków w htaccess? Bo w URL widzę coś w stylu ISO-8859-2, o ile się nie mylę.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
bim2
post 4.03.2011, 20:53:03
Post #3





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


A to nie jest przypadkiem wina przeglądarki? Ja jak kopiuje nawet link z polskimi znakami (które sa normalnie wyświetlone) to przetwarza mi je na encodowane :/ Nie prościej bez polskich znaków tego urlka wpisać? smile.gif


--------------------
Go to the top of the page
+Quote Post
thek
post 4.03.2011, 21:57:55
Post #4





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




A więc mówię... Wszystkie pliki są w ANSI as UTF-8 (innymi słowy utf-8 bez BOM) oprócz htaccess. Niestety z tego co widziałem, to próba konwersji tego pliku na zgodny z innymi powoduje cyrki. Tak jakby htaccess nie miał prawa mieć kodowania pliku innego niż ANSI. Samo wpisanie więc do przeglądarki w pasku adresu polskiej nazwy nie jest problemem, bo wtedy przeleci wszystko ładnie i polskie znaki nie stanowią problemu, gdyż cała strona stoina utf-8. Zonk jest tylko gdy muszę na sztywno w htaccess określić, jako docelowy, adres z polskimi znakami. Niestety zapis htaccess jako ANSI uniemożliwia prawidłowe odczytanie polskich znaków i są one konwertowane na urlencode niezależnie od obecności lub nie flagi NE. Zrobiłem w htaccess na razie tak, że oznaczam sobie pewne na sztywno wpisane przekierowania i metodą miasto, kontrolera obiekty, przechwytuję ję (prosty switch) i redirectuję na, już polski w pełni adres, gdyż plik routera jest już utf-8 bez BOM i nie robi cyrków. Niezbyt to eleganckie, ale działa. Szukałem jednak sposobu na ładniejsze załatwienie tego, bez uciekania się do kierowania dodatkowo przez router, w obrębie samego htaccess, i tutaj niestety jak na razie brak efektów.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
erix
post 4.03.2011, 23:14:27
Post #5





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Z tego co moja wiedza mi mówi, to z innymi znakami niż ASCII w htaccess są cyrki i trzeba je routować zewnętrznym skryptem...


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
thek
post 5.03.2011, 22:56:02
Post #6





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Czyli innymi słowy jedyne możliwe rozwiązanie już zrobilem. Szkoda. Może kiedyś pomyślą nad tym, że skoro dopuszcza się już domeny z diakrytykami to i htaccess powinien mieć możliwość ich obsługi, bez cudowania z routerem lub ewentualne kombinowanie z IDN. Przyjdzie mi chyba poczekać z pełną obsługą do czasu aż w końcu to zauważą wink.gif


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 18.06.2025 - 13:24