Замена знаков в url

J
На сайте с 08.06.2006
Offline
844
745

Очень нужна помощь!

Как используя RewriteRule заменить в урле знаки " ", ".", "+" на "-"

например

из Yamaha DVD-SL100 + RX-SL100 сделать Yamaha-DVD-SL100-RX-SL100

" + " было заменено на один "-"

Р.S. Целое утро лопатил форум - не нашол ничего.:gm:

izbushka
На сайте с 08.06.2007
Offline
110
#1
joost:
Очень нужна помощь!

Как используя RewriteRule заменить в урле знаки " ", ".", "+" на "-"

например
из Yamaha DVD-SL100 + RX-SL100 сделать Yamaha-DVD-SL100-RX-SL100

" + " было заменено на один "-"

Р.S. Целое утро лопатил форум - не нашол ничего.😒

Как я вам уже говорил надо не форум лопатить, а найти документацию по mod_rewrite и не задавать подобные вопросы по каждому вашему правилу

Может здесь почитать

J
На сайте с 08.06.2006
Offline
844
#2
izbushka:
Может здесь почитать

читал и не только это. Нет ничего подходящего по моей проблеме. Всюду только основные, простые примеры.

Если можете подскажите! Плиз!

J
На сайте с 08.06.2006
Offline
844
#3

izbushka, хотябы приблезительно как это должно быть?

AVV
На сайте с 31.07.2006
Offline
84
AVV
#4

Вы скажите, для чего это надо, может быть найдется другое красивое решение. Примеры урлов.

J
На сайте с 08.06.2006
Offline
844
#5
AVV:
Вы скажите, для чего это надо, может быть найдется другое красивое решение. Примеры урлов.

d.php?query=Yamaha+DVD-SL100+++ RX-SL100

надо сделать Yamaha-DVD-SL100-RX-SL100.html

Yamaha+DVD-SL100+++ RX-SL100

здесь "+++" , один "+" ест в названии, два доставлены urlencode()

AVV
На сайте с 31.07.2006
Offline
84
AVV
#6

А если в запросе встретятся русские буквы (кириллица)?

Может быть, лучше перекодировать весь запрос query= в Percent-encoding, как сделано, например, в википедии.

Например, Yamaha+DVD+SL100+RX+SL100.html

кодируем в Yamaha%2BDVD%2BSL100%2BRX%2BSL100.html

perl


$query =~ s/([\x00-\x19"=\+\&#%;:\/<>\?{}|\\\\^~`\[\]\x7F-\xFF])/sprintf('%%%02X',ord($1))/eg;
$query =~ tr/ /+/;

обратное преобразование:


$query =~ tr/+/ /;
$query =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий