Как отдельно использовать части URL собранного с RewriteRule?

Avenus

Under Glory Yield
Как отдельно использовать части URL собранного с RewriteRule?

Прошу помочь разобраться в проблеме с преобразованием динамического url-адреса в статический.
Использую mod_rewrite:
PHP:
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/?$ /afisha/?year=$1&month=$2&day=$3&page=$4 [L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /afisha/?year=([^&]*)&month=([^&]*)&day=([^&]*)&page=([^\ ]*)\ HTTP/
RewriteRule ^$ /afisha/%1/%2/%3/%4? [R=301,L]
В данном случае директория на сайте /afisha. Адрес собирается при вводе всех значений:
директория/год/месяц/день/категория или, к примеру:
/afisha/2007/09/10/film - Показывается все фильмы за сегодня.

Как переписать RewriteRule, чтобы не имея всех значений в url страница отображала необходимые данные? К примеру:
1. Если мне нужны все события за сегодня /afisha/2007/09/10/ - тут просто
2. А если за сентябрь? /afisha/2007/09/
3. Или же все фильмы за все время /afisha/film/
4. И если объект по id в любой момент - например при url=/afisha/film/?id=1 Т.е. чтобы в конце можно было еще добавлять некоторые параметры... id или сортировка к примеру

В общем, либо дать ссылку на работающий пример.
Заранее всем благодарен!
 

Avenus

Under Glory Yield
Да, там хорошо написано про то, как разобрать url посредством php-скрипта. И получить опять же массив, в котором ключи элементов url будут меняться в зависимости от этого url. К примеру:
.htaccess
PHP:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)$ /afisha/index.php/$1 [QSA]
index.php
PHP:
$url=$_SERVER['REQUEST_URI'];
$url_el=explode("/",$url);
print_r($url_el);
1 .Для ссылки /afisha/club имеем:
PHP:
Array ( [0] => [1] => afisha [2] => club [3] => )
2. Для ссылки /afisha/2007/09/10/ имеем
PHP:
Array ( [0] => [1] => afisha [2] => 2007 [3] => 09 [4] => 10 [5] => )
Т.е. в 1-ом случае [3]=club, а во 2-ом [3]=2007
И как узнать, что имеем в url: категорию или год?
... :(
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
И как узнать, что имеем в url: категорию или год?
Ну например написать , что в данном случае это архив.
afisha/club/
afisha/arhive/2007/

-~{}~ 10.09.07 18:38:

Простите, но никто кроме Вас не сможет постоить логику Вашего скрипта.
 

Avenus

Under Glory Yield
Да, я понимаю... я пытаюсь написать здесь какую логику я предполагаю для скрипта.
1. Если имеем дату, то показываем события для этой даты.
2. Если имеем и дату и категорию события, то показываем события данной категории и для данной даты.
3. А если имеем только категорию событие, то показываем все события данной категории.
При использовании RewriteRule, которые я писал, получается, что невозможно исключить какое-либо из условий, т.е. необходимо всегда задавать очередность: дату, категорию, ...
Так получается???
 
Сверху