Как правило, это делается через использование .htaccess
переписывает (Apache mod_rewrite):
- Вы используете
.htaccess
, чтобы переписывать каждый запрос, который не является статическим файлом, в вашу основную точку входа, например index.php
, при условии, что вы используете PHP в качестве своего серверного языка.
- Затем вы анализируете URI с точностью до
index.php
и устанавливаете некоторые маршруты в своем приложении.
Быстрый пример:
.htaccess
файл:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
index.php
файл:
$uri = $_SERVER['REQUEST_URI'];
$parts = explode('/', $uri);
// assuming you want /controller/action/* mapping
$controller = 'index'; // default
$action = 'index'; // default
if (isset($parts[0])) $controller = $parts[0];
if (isset($parts[1])) $action = $parts[1];
// now, you'd try to establish some logic to test wether this controller/action
// actually exists, and load it. I'll leave this up to you.
Это, конечно, это просто быстрый и грубый пример, но должен дать вам представление о том, как это сделать.
Вы можете проверить [Symfony2] (http://symfony.com), и это микро версия, [Silex] (http://silex.sensiolabs.org/). Это развязанная инфраструктура PHP, и вы можете использовать только те компоненты, которые вам нужны. Создатель Symfony имеет [серию сообщений в блогах] (http://fabien.potencier.org/article/50/create-your-own-framework-on-top-of-the-symfony2-components -part-1), объясняя, как создать структуру с компонентами Symfony. : –