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]
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.