Сделал себе подобие MVC на сайте Код (Text): RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?route=$1 [L,QSA] То есть по запросу /users/ я буду подключать users.php, но я не совсем понимаю как работать с параметрами вида: /users/page/1/action/test/ Как принято такие параметры добавлять и извлекать чтобы все нормально работало? Не хочу изобретать новый велосипед
А регекспом разве можно такое проверить? Вот я допустим через explode нашел страницу (первый элемент массива), а как мне в целевой страницы все нужные переменные выделить? Просто по массиву который вернул explode пробежать и n элемент это параметр а n+1 его значение? Так что ли?
Какой прикол? Я просто хочу сделать ЧПУ на сайте, вот и есть прикол. Только не уверен как правильно такое реализовать.
Ну это примерно то же что и я сказал. Если ссылка будет вида /users/page/2, то первый элемент это подключаемая страница, мы его достаем. Остается page и его значение 2. То есть n (параметр) и n+1 его значение. --- Добавлено --- О, спасибо. Похоже на то что нужно. --- Добавлено --- Только теперь не совсем понятно как сделать. Вот например у меня /users/ должен показывать страницу со списком пользователей. А /users/add/ страницу с формой добавление пользователя. /users/page/5 соответствующую страницу. Как правильно псевдороутер должен выглядеть в таком случае?
В адресной ветке может быть куча страниц. Лучше говорить «указание на класс», «указание на модуль» и т.п. Причем этот слаг не должен быть непосредственно именем класса, модуля и т.п. Больше похоже на какой-то внутренний технический формат, чем на ЧПУ. Как хотите, так и делайте. Но лучше начать с простого. Раз уж пошли по пути прямого парсинга исходного адреса (без его преобразования в промежуточный технический формат), посмотрите этот пример – выделяются всего две части (правда, путь все равно может быть многокомпонентный, а кроме того еще дополнительно используется один GET-параметр), используются только дефолтные экшины (если нужно увеличить кол-во экшинов, в первую очередь для этого используются доп. протокольные методы, алиасы, например /adduser, и т.п.) – это т.н. REST-подход, при кот. в адресах обычно появляются только сущности, но не действия.
@freelsd, если уже рассматриваешь библиотеки, то не изобретай велосипед, возьми готовый роутер. http://route.thephpleague.com/, например. Если хочется велосипед, но который работает как крутой роутер, то изучи сначала существующие