Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
G100m 12.12.2002 16:34
Я просто хочу с использованием parser-а формировать ЧПУhttp://www.bla-bla-bla/lib/bulhgakov/fatal_eggs/Запрос идет на сервер
RewriteEngine on RewriteRule !\.(gif|jpg|png|css)$ /redirect.htmlЗапрос передается парсеру, который пытается сформировать запрос к базе данных или обработать xml или text файл:
@redirect[] # Тут что-то типо защиты # Получаем запрошенный путь $uri_request[$request:uri] # Находим длинну строки $uri_request_length[^uri_request.length[]] # Если строка больше, чем 100 знаков ^if(${uri_request_length} > 100){ # Посылаем пользователю привет ^fack[] }{ # Посылаем парсеру строку ^redirect_second_step[] } @redirect_second_step[] # Вычислям $section_match ^if(in "/lib"){ # LIB/bulhgakov ^if(in "/lib/bulhgakov"){ ^if(^uri_request.match[(lib/bulhgakov)\/.+][i]){$section_match[lib/bulhgakov/*]}{$section_match[lib/bulhgakov/]} }{$section_match[lib]} # LIB/pushkin ^if(in "/lib/pushkin"){ ^if(^uri_request.match[(lib/pushkin)\/.+][i]){$section_match[lib/pushkin/*]}{$section_match[lib/pushkin/]} }{$section_match[lib]} } # Определяем значения переменным, изходя из $section_match ^switch[$section_match]{ # Это корень lib ^case[lib]{$section_static[lib] $directory[root]} # Это корень lib_bulhgakov ^case[lib/bulhgakov]{$section_static[lib_bulhgakov] $directory[root]} # Это раздел bulhgakov ^case[lib/bulhgakov/*]{$section_static[lib_bulhgakov] $directory[not_root]} # Это корень lib_pushkin ^case[lib/pushkin]{$section_static[lib_pushkin] $directory[root]} # Это раздел pushkin ^case[lib/pushkin/*]{$section_static[lib_pushkin] $directory[not_root]} # Если ничего похожего нет ^case[DEFAULT]{^fack[]} } # Проверям, что выдавать - корень или запрос ^if(${directory} eq root){ ^shablon_root[$section_static] }{ $request_to_shablon[^uri_request.match[(.+?)(\d+)(.?)][i]{$match.2}] ^shablon[$directory;$request_to_shablon] }Все очень глупо длинно и не автоматизированно