Просмотр поста

.
ramzes

3. REWRITE роутер силами PHP:
Есть несколько способов реализации.
С использованием Mod Rewrite, или например с использованием страниц ошибок (404)
3-a. Rewrite Rule:
Что нам надо?
Одно простое правило, которое переадресовывает все запросы на 1 страницу (index.php в корне сайта).
3-б. Как работает?

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^(.*?)/$ index.php?rewriter=$1 [L,QSA]
</IfModule>

одно простое правило, перенаправит любой запрос на index.php в корне, и передаст все что было найдено до / как переменную.
3-в. Что это дает?
* Все запросы идут к нам, мы все их контролируем, и можем реагировать на них как нам надо (будь то валидный запрос, или попытка взлома)
* Все страницы подключаются только если наш скрипт это одобрит.
* Все страницы изначально имеет набор подключенных компонентов из основного файла (того к которому они подключаются, тот же index.php)
* Физического доступа к файлам страниц нет, адрес их хранения получить невозможно (например site.ru/file/12345/windows-7-istaller/ может лежать на самом деле по адресу /template/content/file/view.php
а может и еще где.
* Но есть и минус. нам необходимы правила исключений (не всегда нам необходимо авторизировать пользователя, а авторизация проходит в рутовом файле независимо от того нужно нам это или нет)
необходимо изначально учесть такой момент, иначе потом придется долго исправлять, или пренебречь неоправданными телодвижениями