Пример скрипта ЧПУ

Олег14 років у сервісі
Дані замовника будуть вам доступні після подання заявки
01.04.2011

Надо что-то подобное как у kasseler-cms, eleanor, dle и т.п... Для примера работы можно сделать подобие мини-цмс с парой модулей для демонстрации, например: новости, статьи, аккаунт, магазин; категории для новостей, статей и магазина. БД проектировать ненадо, просто таблицы с несколькими полями для каждого модуля. Никаких проверок и защиту делать тоже ненадо. Будет это класс, или несколько функций – неважно, главное чтобы было мультимодульное, т.е. для каждого модуля могут быть разные входящие параметры и разное их количество. Модули будут использоватся свои и со временем их количество может увеличиваться. (Рассматривается варинт не мультимодульного класса, т.е. для каждого модуля надо будет писать новое правило для разбора параметров)

Например:

с чпу

site.ru/news/category/news_name/3/

без чпу

site.ru/index.php?module=news&category=category&name=news_name&page=3

-здесь page для паджинации каментов

с чпу

site.ru/news/category/3/

без чпу

site.ru/index.php?module=news&category=category&page=3

-здесь page для паджинации новостей в категории

подобное и для статей и магазина

Для аккаунта пользователя желательно чтобы в ссылке не фигурировало название модуля:

site.ru/username/edit/

site.ru/username/3/ – 3-навигация по каментам

Для генерации хотелось бы функцию, которой скармливаешь массив данных, и функция сама генерирует ссылку, например

make_url(array('module'=>'news', 'category'=>'category_name', 'news_name'=>'news-name', 'page'=>'3'));

С этим проблем быть не должно, главное это парсер, которы правильно разберет параметры)

Ну и самое главное – это возможность задавать разделители и окончание для ссылки. Это может быть .html, слеш "/" или вообще без окончания

Пишите свои предложения, ссылки на примеры реализации.