.htaccess и регулярные выражения или скрипт?
Прошу скромного ответа на вопрос.
Как лучше поступить: сделать регулярное выражение через htaccess или просто предоставить всю обработку запроса отдельному PHP файлу? Огромное описание задачи - ниже. Заранее прошу прощения за излишек символов - хотел описать объём работы и примеры гибкости всей задачи. Делаю ЧПУ для админки. Обработчик один, проверяет много условий, аспектов тоже много. Всё должно начинаться с "manage" или "manage/". Т.е. изначально УРЛ таков: "site.ru/somedir/manage/". В админке куча разделов. УРЛы специально написаны максимально логично и просто - сам любитель "вбивать от руки". 1) Просто разделы Это просто страница с какой-то информацией, у неё нет дополнительных подразделов. "manage/postform" - специальная форма постинга; "manage/logout", "manage/login" - выход/вход; и пр. 2) Управление блокировками пользователей "manage/bans" - раздел: добавление/удаление банов, переход к конкретному по ID для конкретной информации "manage/bans/b137" - получить информацию по бану с ID 137. "manage/bans/b137/lift" - отпустить бан с ID 137 3) Жалобы "manage/reports" - все жалобы; "manage/reports/r137" - жалоба с ID 50; "manage/reports/rip127.0.0.1" - все жалобы с этим IP; "manage/reports/r137/crear" - пометить жалобу с ID 50 "чистой"; "manage/reports/rip127.0.0.1/crear" - пометить все жалобы, где IP отправителя - 127.0.0.1, "чистыми"; и т.д, лень всё описывать. 4) Модерация постов Вот если раньше я ещё думал, что можно всё делать RegExp'ом, то после обдумывания структуры запросов к разделу модерации, я серьёзно засомневался. "manage/mod/p137" - перейти к модерации поста с ID 137; "manage/mod/p137/delete" - вместо "delete" может быть "edit", "magic" и пр. - удалить, редактировать, добавить "магии"; 5) Ещё думаю как бы добавить поиск всех постов по IP и их опциональное удаление при бане и пр. прелести; Итак. Некоторую часть вышеописанного я смог уместить в одну регулярку: > RewriteRule ^manage/([a-z]+)?/?([prb])?([0-9]+)?/?([a-z]+)?$ manage.php?$1=1&$2id=$3&action=$4 [L] . Работают 1й, 2й и, частично, 3й пункты. Но что-то мне подсказывает, что расширять её дальше - некуда. Она итак максимально растянута, вместил в её всё что можно, все возможные компоненты являются опциональными и пр. Возможно ли всё вышеописанное реализовать через простой mod_rewrite? Если да - подскажите: как? Про условния знаю, но не могу придумать как их использовать. Если нет - стоит ли для этого делать скрипт, обрабатывающий такой УРЛ, или есть другие методы? |
Цитата:
|
Цитата:
Если имеешь в виду, что будет много разных юзеров - да. Права у них отличаются, некоторые не могут иметь доступ к тем или иным разделам. |
Ну тогда запариться можно с таким ЧПУ. Да и вообще, ЧПУ более для поисковых роботов, а административный раздел, это закрытый раздел, раскручивать и кешировать его в гуглах нет надобности, им вообще запретить шариться по нему нужно.
Может быть, если уж делать, то администрирование/раздел/ключ в разделе/параметры, где ключ, это уже задача в разделе, а параметры просто параметры (их можно и в JSON передавать), а не размазывать для каждого да еще буковка+идентификатор - b137, r137, r137/crear, p137, p137/delete...? |
Часовой пояс GMT +3, время: 19:48. |