Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [htaccess]Polskie znaki - przepchnięcie przez htaccess bez pliku routującego
thek
post
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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





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.
Go to the top of the page
+Quote Post

Posty w temacie


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: 17.10.2025 - 09:51