Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Polskie znaki i mod_rewrite
Forum PHP.pl > Forum > Przedszkole
bemol
Witam, mam problem z mod_rewrite.
Mam taki prosty plik .htaccess
Kod
Options FollowSymLinks
RewriteEngine On
RewriteRule ^index.xhtml$ index.php [L]
RewriteRule ^meskie.xhtml$ index.php?page=meskie [L]
RewriteRule ^zenskie.xhtml$ index.php?page=zenskie [L]
RewriteRule ^statystyki.xhtml$ index.php?page=statystyki [L]
RewriteRule ^kontakt.xhtml$ index.php?page=kontakt [L]
RewriteRule ^linki.xhtml$ index.php?page=linki [L]
RewriteRule ^([A-ZŁŻ]+).xhtml$ index.php?page=imiona&litera=$1 [L]
RewriteRule ^([a-zA-ZęóąśłżźćńĘÓĄŚŁŻŹĆŃ]+).xhtml$ index.php?page=imiona&imie=$1 [L]


I w przypadku kliknięcia powiedzmy takiego linku: .../Ł.xhtml pojawia się błąd nieistniejącej strony. Co bardzo ciekawe zauważyłem, że na tym serwerze po użyciu funkcji substr ucinając słowo do 1 znaku, krzaczą się polskie znaki, gdy ucinam do 2 znaków pojawiają się polskie znaki i wygląda to mniej więcej tak: Ab, Ad, As..., Ł, ... Ro, ..., Ż
Tak jakby polskie znaki zajmowały dwa znaki. Jak przypuszczam chodzi pewnie o to, że wartość szesnastkowa kodu ASCII nie miesci się na danej długości. Liczyłem i sprawdzałem więc się zgadza. Nie wiem co może być przyczyną, kodowanie plików ustawione na utf-8, kodowanie w nagłówkach też na utf-8.

Przypuszczam, że mógłbym to rozwiązać w ten sposób, że zastąpiłbym polskie znaki w .htaccess na kody ascii, ale czy tak można i czy ma to sens?
Proszę o pomoc.
erix
Z tego, co pamiętam, to jeśli w grę wchodzą polskie znaki i Rewrite, to lepiej przerzucić to na routera w skrypcie.
bemol
a tak dokładnie? bo średnio rozumiem to co napisałeś
erix
Zrób skrypt routujący, bo Rewrite z polskimi znakami się za bardzo nie lubią... winksmiley.jpg
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.