Опять mod_rewrite

[Удален]
668

Столкнулся с такой проблемой

RewriteRule ^string/([0-9]+)/*$ /file.php?par_id=$1
- не работает. В файл file.php не передается значение par_id

К примеру, если написать так:

RewriteRule ^string([0-9]+)/*$ /file.php?par_id=$1
(без слеша посередине), то все работает.

Видимо связано с воcприятием string как поддиректории. Игры RewriteBase не помогли.

Не подскажете, как решить проблему, хотелось бы разделять параметры именно слешами, чтоб работало что-то типа

RewriteRule ^string/([0-9]+)/([0-9]+)/([0-9]+)/*$ /file.php?par1=$1&par2=$2&par3=$3

Вроде задача типовая, а что-то столкнулся с проблемой...

AM
На сайте с 04.11.2003
Offline
57
#1

экранировать слэши надо

antono
На сайте с 12.07.2004
Offline
302
#2

Не нужно там ничего экранировать. Попробуйте так:

RewriteRule ^string/([0-9]*)/$ file.php?par_id=$1

Dalim
На сайте с 13.01.2006
Offline
47
#3
javadf:
- не работает. В файл file.php не передается значение par_id
javadf:
RewriteRule ^string/([0-9]+)/*$ /file.php?par_id=$1

Это у вас что за * ??? куча слешей?

правильно множество писать так: (.*)

lexwrlk
На сайте с 12.10.2005
Offline
130
#4

javadf, делайте так:

RewriteRule ^string/(\d*)/(\d*)/(\d*)/.*$ /file.php?par1=$1&par2=$2&par3=$3

- заработает, но только если между слешами будут цифры, если нет замените (\d*) на (.*) - это выражение съест любые символы между слешами (и цифры тоже;))

Почитайте Регулярные выражения внимательно и все встанет на свои места.

СДЛ СДЛу рознь (с) Форест Гамп
bartik
На сайте с 03.04.2006
Offline
114
#5

RewriteRule ^string/(.*)/(.*)/(.*)/.*$ /file.php?par1=$1&par2=$2&par3=$3

Пробуйте

Продвижение сайтов, Хостинг, Написание скриптов - ICQ 696-376
[Удален]
#6

У меня между слешами только цифры, поэтому я и пишу ([0-9]+). Можно и (\d+) - это однояйственно.

В конце /* означает либо есть / в конце урла либо нет.

Прикол в том, что сегодня пришел, включил комп - все зарабтало :), хотя я вчера апач регулярно перезапускал - не помогало. Видимо глюк был на уровне ОС.

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