Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: проблема с mod_rewrite
 
 автор: Дмитрий Смаль   (01.12.2014 в 23:31)   письмо автору
 
 

я использую выражение
RewriteRule ^([^/]+)/?([^/]+)/?([^/]+)/?$ index.php?u[0]=$1&u[1]=$2&u[2]=$3 [L,QSA]
оно преобразовывает урл типа /0/1/2/
в index.php?u[0]=0&u[1]=1&u[2]=2
но если написать урл типа /0//1/
то будет
в index.php?u[0]=0&u[1]=1
а нужно чтобы было
в index.php?u[0]=0&u[1]=&u[2]=1

заранее спасибо

  Ответить  
 
 автор: Trianon   (02.12.2014 в 00:26)   письмо автору
 
   для: Дмитрий Смаль   (01.12.2014 в 23:31)
 

>я использую выражение
>RewriteRule ^([^/]+)/?([^/]+)/?([^/]+)/?$ index.php?u[0]=$1&u[1]=$2&u[2]=$3 [L,QSA]
>оно преобразовывает урл типа /0/1/2/

Вам придется объяснить себе, что в этой строчке ...
 ^([^/]+)/?([^/]+)/?([^/]+)/?$
...означает каждый символ.

>но если написать урл типа /0//1/
согласно регекспу нельзя такого писать.

  Ответить  
 
 автор: Дмитрий Смаль   (02.12.2014 в 01:19)   письмо автору
 
   для: Trianon   (02.12.2014 в 00:26)
 

с ошибкой написал
я использую код
RewriteRule ^([^/]*)/?([^/]*)/?([^/]*)/?$ index.php?u[0]=$1&u[1]=$2&u[2]=$3 [L,QSA]
он преобразовывает урл от одного до трех уровней вложенности
/0/
/0/1/
/0/1/2/
проблемы возникают с урл типа
/0//1/

  Ответить  
 
 автор: Дмитрий Смаль   (02.12.2014 в 10:05)   письмо автору
 
   для: Дмитрий Смаль   (02.12.2014 в 01:19)
 

как написать такой реврайт чтобы было так
/0/ -> /index.php?u[0]=0
/0// -> /index.php?u[0]=0&u[1]=
/0/1/ -> /index.php?u[0]=0&u[1]=1
/0//1 -> /index.php?u[0]=0&u[1]=&u[2]=1

  Ответить  
 
 автор: Trianon   (02.12.2014 в 13:31)   письмо автору
 
   для: Дмитрий Смаль   (02.12.2014 в 10:05)
 

тремя разными правилами, для каждого из случаев.
Возможно, даже четырьмя. Но тремя - как минимум.

  Ответить  
 
 автор: Дмитрий Смаль   (11.12.2014 в 18:38)   письмо автору
 
   для: Trianon   (02.12.2014 в 13:31)
 

пробовал так
RewriteRule ^([-a-z0-9]*)/$ index.php?u[0]=$1 [L,QSA]
RewriteRule ^([-a-z0-9]*)/([-a-z0-9]*)/$ index.php?u[0]=$1&u[1]=$2 [L,QSA]
RewriteRule ^([-a-z0-9]*)/([-a-z0-9]*)/([-a-z0-9]*)/$ index.php?u[0]=$1&u[1]=$2&u[2]=$3 [L,QSA]
и так
RewriteRule ^([^/]*)/$ index.php?u[0]=$1 [L,QSA]
RewriteRule ^([^/]*)/([^/]*)/$ index.php?u[0]=$1&u[1]=$2 [L,QSA]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/$ index.php?u[0]=$1&u[1]=$2&u[2]=$3 [L,QSA]
один хрен
ссылки /0//1/ и /0/1/ для него одинаковые
что сделать чтобы улавливало задвоенные слеши?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования