ссылки вида www.wwww.ww/Главная/Статьи/

smertnik

Новичок
ссылки вида www.wwww.ww/Главная/Статьи/

Здраствуйте. Есть таблица в бд с полями id и parent_id, и главный файл index.php где все это обрабатывается. Теперь собственно проблема. В файле .htaccess для мод_реврайт написана подмена для ссылки вида (index.php?id=1&parent_id=2) RewriteRule ^([^/.]*)/([^/.]+)/?$ index.php?id=$1&parent_id=$2 , чтобы сделать ссылку вида index.php/1/2/ , а я хочу добиться неограниченной вложености в ссылки, типа есть папка 1 в ней папка 2, в папке 2 лежит папка 3 и.т.д (www.wwww.ww/1/2/3/4/и.т.д)
Вытащить инфу из бд и сгенерироватьссылку непроблемма с помощью рекруссии, а вот разобрать эту ссылку ни как не выходит. Поскажите как можно добиться такой вложенности www.wwww.ww/Главная/Статьи/Программирование/PHP/и.т.д:confused:
 

alekseymarkov

Новичок
$server = explode("/", $_SERVER['PHP_SELF']);

// $server[0] = 1
// $server[1] = 2
// $server[2] = 3
// $server[4] = 4
// $server[5] = и т.д.
 

smertnik

Новичок
А есть ли еще варианты такой реализации. С реврайтом удобно получается, точно известно где id а где parent_id. И если кто знает скрипты где подобное реализованно напишите название или ссылку. Заранее спасибо.
 

que_bunt

Новичок
smertnik с помощью mod_rewrite неограниченую вложеность написать не выйдет, разве что прикинуть что максим. вложеность будет например 20 и написать 20 правил, аналогичных то того что ты написал.
но лучшым вариантом думаю будет анализовать $_SERVER["REQUEST_URI"] так как написал
alekseymarkov
 

avenger_msoft

Новичок
Автор оригинала: que_bunt
с помощью mod_rewrite неограниченую вложеность написать не выйдет
Пожалуйста, рекурсивный шаблон:

RewriteCond %{QUERY_STRING} ^section=([_a-zA-Z0-9]+)\&?(.*)$
RewriteRule ^/index.php$ /index.php/%1?%2
RewriteCond %{QUERY_STRING} ^sub\d+=([_a-zA-Z0-9]+)\&?(.*)$
RewriteRule ^/index.php(/.+)$ /index.php$1/%1?%2 [N]
RewriteCond %{QUERY_STRING} ^pub_id=([_a-zA-Z0-9]+)$
RewriteRule ^/index.php(/.+)$ /index.php$1/%1.htm
RewriteRule ^/index.php(/.+)$ $1 [L]

Фрагмент rewrite_log с RewriteLogLevel 2 для запроса:
/index.php?section=pub&sub1=microsoft&sub2=windows&sub3=sp2&pub_id=777

init rewrite engine with requested uri /index.php
rewrite /index.php -> /index.php/pub?sub1=microsoft&sub2=windows&sub3=sp2&pub_id=777
rewrite /index.php/pub -> /index.php/pub/microsoft?sub2=windows&sub3=sp2&pub_id=777
rewrite /index.php/pub/microsoft -> /index.php/pub/microsoft/windows?sub3=sp2&pub_id=777
rewrite /index.php/pub/microsoft/windows -> /index.php/pub/microsoft/windows/sp2?pub_id=777
rewrite /index.php/pub/microsoft/windows/sp2 -> /index.php/pub/microsoft/windows/sp2/777.htm
rewrite /index.php/pub/microsoft/windows/sp2/777.htm -> /pub/microsoft/windows/sp2/777.htm
local path result: /pub/microsoft/windows/sp2/777.htm

Трансформация идет из
http://site.dom/index.php?section=pub&sub1=microsoft&sub2=windows&sub3=sp2&pub_id=777
в
http://site.dom/pub/microsoft/windows/sp2/777.htm
Здесь неограниченная вложенность по sub1=1 sub2=2 sub3=3 и т.д.
 
Сверху