The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Проблема mod_rewrite"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [Проследить за развитием треда]

"Проблема mod_rewrite"  
Сообщение от Turtle_Fly email on 08-Апр-05, 15:23 
Добрый день.
Эм тут такая вот загогулина:
есть правило
RewriteRule ^(.*)prodlist(.*)_(.*)_(.*)_(.*)_(.*)_(.*)_(.*)_(.*)_(.*)_(.*).html$ $1prodlist.php?page=$2&submenuselect=$3&menuselect=$4&m=$5&producttable=$6&brand=$7&sortby=$8&sorttype=$9&xlines=$3&pagel=$11 [L]

дык вот аномалия не пойму как с ней справиться .. после $9 ничего не передается :(
$10 $11 и т.п пропадают

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Проблема mod_rewrite"  
Сообщение от zenon email(??) on 08-Апр-05, 19:31 
>Добрый день.
>Эм тут такая вот загогулина:
>есть правило
>RewriteRule ^(.*)prodlist(.*)_(.*)_(.*)_(.*)_(.*)_(.*)_(.*)_(.*)_(.*)_(.*).html$ $1prodlist.php?page=$2&submenuselect=$3&menuselect=$4&m=$5&producttable=$6&brand=$7&sortby=$8&sorttype=$9&xlines=$3&pagel=$11 [L]
>
>дык вот аномалия не пойму как с ней справиться .. после $9
>ничего не передается :(
>$10 $11 и т.п пропадают

А mod_rewrite работает только с 9-ю аргументами, об этом и в руководтве написано, так что от $10 и $11 придется отказаться или же передавать весь урл в скрипт, а он сам будет анализировать параметры.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Проблема mod_rewrite"  
Сообщение от Turtle_Fly email on 09-Апр-05, 16:19 
:) и правда сейчас повнимательней посмотрел доку и нашел $N где N 0-9
и спасиб за совет по передаче всего урла в скрипт :)
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Проблема mod_rewrite"  
Сообщение от Alexey Gordienko email on 22-Сен-07, 03:38 
Стояла подобная задача.

Необходимо было запрос вида:
/p1/1/p2/2/p3/3/p4/4/p5/5/p6/6/p7/7/p8/8/p9/9/p10/10
преобразовать в
/index.php?p1=1&p2=2&p3=3&p4=4&p5=5&p6=6&p7=7&p8=8&p9=9&p10=10

Почитал документацию по mod_rewrite подумал и вот оно решение!


RewriteRule ^(.*)/([^/]+)/([^/]+)$ $1&$2=$3 [NC]
RewriteRule ^([^/]+)/([^/]+)$ index.php?$1=$2 [NC,L]

Первым правилом строку запроса по паре параметр/значение преобразуем в параметр=значение. Обратите внимание на то, что в первом правиле отсутствует буква L ' last|L ' (последнее правило).

Вторым правилом завершаем преобразование строки запроса: преобразуем последнюю пару и добавляем index.php?

В процессе отладки, очень помог просмотр лога rewrite_log.
Чтобы его включить в httpd.conf:


RewriteLog /home/user/logs/rewrite.log
RewriteLogLevel 2

При этом у меня в логе примерно следующее (лишние строки удалил):


rewrite 'p1/1/p2/2/p3/3/p4/4/p5/5/p6/6/p7/7/p8/8/p9/9/p10/10' -> 'p1/1/p2/2/p3/3/p4/4/p5/5/p6/6/p7/7/p8/8/p9/9&p10=10'
rewrite 'p1/1/p2/2/p3/3/p4/4/p5/5/p6/6/p7/7/p8/8/p9/9&p10=10' -> 'p1/1/p2/2/p3/3/p4/4/p5/5/p6/6/p7/7/p8/8&p9=9&p10=10'
rewrite 'p1/1/p2/2/p3/3/p4/4/p5/5/p6/6/p7/7/p8/8&p9=9&p10=10' -> 'p1/1/p2/2/p3/3/p4/4/p5/5/p6/6/p7/7&p8=8&p9=9&p10=10'
rewrite 'p1/1/p2/2/p3/3/p4/4/p5/5/p6/6/p7/7&p8=8&p9=9&p10=10' -> 'p1/1/p2/2/p3/3/p4/4/p5/5/p6/6&p7=7&p8=8&p9=9&p10=10'
rewrite 'p1/1/p2/2/p3/3/p4/4/p5/5/p6/6&p7=7&p8=8&p9=9&p10=10' -> 'p1/1/p2/2/p3/3/p4/4/p5/5&p6=6&p7=7&p8=8&p9=9&p10=10'
rewrite 'p1/1/p2/2/p3/3/p4/4/p5/5&p6=6&p7=7&p8=8&p9=9&p10=10' -> 'p1/1/p2/2/p3/3/p4/4&p5=5&p6=6&p7=7&p8=8&p9=9&p10=10'
rewrite 'p1/1/p2/2/p3/3/p4/4&p5=5&p6=6&p7=7&p8=8&p9=9&p10=10' -> 'p1/1/p2/2/p3/3&p4=4&p5=5&p6=6&p7=7&p8=8&p9=9&p10=10'
rewrite 'p1/1/p2/2/p3/3&p4=4&p5=5&p6=6&p7=7&p8=8&p9=9&p10=10' -> 'p1/1/p2/2&p3=3&p4=4&p5=5&p6=6&p7=7&p8=8&p9=9&p10=10'
rewrite 'p1/1/p2/2&p3=3&p4=4&p5=5&p6=6&p7=7&p8=8&p9=9&p10=10' -> 'p1/1&p2=2&p3=3&p4=4&p5=5&p6=6&p7=7&p8=8&p9=9&p10=10'
rewrite 'p1/1&p2=2&p3=3&p4=4&p5=5&p6=6&p7=7&p8=8&p9=9&p10=10' -> 'index.php?p1=1&p2=2&p3=3&p4=4&p5=5&p6=6&p7=7&p8=8&p9=9&p10=10'

Можно предположить, что количество параметров при этом не ограничено  ::smile24.gif::

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру