Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mod_rewrite]Przepisanie adresu - wykluczenie znaku
odkuszacz
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 4.01.2011

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


Witam. W .htaccess mam zdefiniowaną działającą regułę:
Kod
RewriteRule ^(.+)/(pl)/([0-9]+)\.html$ skrypt.php?lang=$2&id=$3 [L]

w przypadku adresu adresu np.:
www.adres.pl/żabie-kiwi/z-uprawy/pana-krzysztofa/pl/51424.html
Używam polskich znaków w url i nie chcę tego zmieniać choć- wiem, że są podzielone opinie na ten temat :-)

Do celu:
W logach zauważyłem odwołania np. do adresu jak wyżej, tylko że z polskimi znakami zakodowanymi w unicode tj.
www.adres.pl/%u017Babie-kiwi/z-uprawy/pana-krzysztofa/pl/51424.html

Na skutek wywołania tego adresu serwer zwraca błąd 400 Bad Request. Wystarczy, że url będzie miał postać np.:
www.adres.pl/u017Babie-kiwi/z-uprawy/pana-krzysztofa/pl/51424.html (bez znaku %) - strona zostanie wywołana prawidłowo.

Proszę o pomoc w temacie:
W jaki sposób mogę rozwiązać ten problem.
Czy da się za pośrednictwem .htaccess konwertować unicode do utf8 lub ignorować określony znak w tym przypadku %?

Próbowałem takiej reguły:
Kod
RewriteRule ^([a-zA-Z_-%]+)/(pl)/([0-9]+)\.html$ skrypt.php?lang=_$2&id=$3 [L,B]

ale bez skutku :/

.htaccess wygląda tak:
Kod
ErrorDocument 400 error400.php
ErrorDocument 403 error403.php
ErrorDocument 404 error404.php

RewriteEngine on
Options +FollowSymLinks
RewriteBase /

RewriteRule ^(.+)/(pl)/([0-9]+)\.html$ skrypt.php?lang=_$2&id=$3 [L]


Za pomoc z góry wielkie dzięki.
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 21.08.2025 - 11:09