Mod rewrite zamienianie znaków

Witam mam problem z modem rewrite nie wiem jak znaleźć linie w której przetwarzane są znaki pod url. Ponieważ chciał bym tam dodać aby np: “ą” zamieniało mi na “a” lub “ś” na “s” bo aktualnie kiedy w linku użyje “ą” to otrzymuję “-”. Jak to dodać ??

Nie bardzo rozumiem…

Linki generujesz na poziomie php i tam powinieneś przeprowadzić konwersję ogonków itp.

A jeżeli chodzi o htaccess, to jeżeli chcesz zmusić do trawienia ogonków, to musisz zmienić zakres w regułkach np. coś w stylu

[a-z0-9 -]+ na [a-z0-9 -ąćęłńóśźż]+ albo (.*) czy korzystając z negacji [^/]+

Znalazłem coś takiego czy tutaj mam to wpisać ?

$tos = FALSE;

$to = str_replace(' ', '', $to);

if(eregi(',', '')){

$tos = explode(',', $to);

}

Nie stosuj eregi, bo po pierwsze ma status deprecrecated, po drugie to co to za konstrukcja?, a po trzecie to to do wyrażeń regularnych!

zmienić ogonkowe na bezogonkowe możesz tak:

$to = iconv('utf-8','ascii//translit',$to);

a możesz dać mi przykład z zamianą np literki ą na a ?

zmieni wszystkie krzaczki na wersję bezogonkową

<?php

$tekst='bąbelki są źródłem radości';

$tekst = iconv('utf-8','ascii//translit',$tekst);


echo $tekst; //dostaniesz: babelki sa zrodlem radosci

?>

jak chcesz zmienić tylko jedną literę, to:

<?php

$tekst='bąbelki są źródłem radości';

$tekst = str_replace('ą','a', $tekst);


echo $tekst; //zwróci: babelki są źródłem radości

?>

możesz też zmienić kilka wybranych znaków:

<?php

$in = array('ą','ć','ę','ż');

$out=array('a','c','e','z');


$tekst='ąćęłńóśżź';

$tekst = str_replace($in,$out, $tekst);


echo $tekst; //zwróci: acełńóśzź

?>

ten ostatni przykład łatwiej zrealizować z użyciem funkcji strtr