Вот пример используемых файлов:
.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>
index.php
<?php
function getWebPath() {
$location = "";
// Read the relative URL into an array
if(isset($_SERVER['HTTP_X_REWRITE_URL'])) { // IIS Rewrite
$location = $_SERVER['HTTP_X_REWRITE_URL'];
} elseif(isset($_SERVER['REQUEST_URI'])) { // Apache
$location = $_SERVER['REQUEST_URI'];
} elseif(isset($_SERVER['REDIRECT_URL'])) { // Apache mod_rewrite (breaks on CGI)
$location = $_SERVER['REDIRECT_URL'];
} elseif(isset($_SERVER['ORIG_PATH_INFO'])) { // IIS + CGI
$location = $_SERVER['ORIG_PATH_INFO'];
}
return $location;
}
$location = getWebPath();
print_r($location);
Функция выше должна где-то стать методом в вашем классе фронт-контроллера.Вам просто нужно вычесть ваш базовый путь из $ location, чтобы вы остались с виртуальным путем.Затем вы можете делать все, что захотите - например, просто разделить на '/', а затем пройтись по пути, передавая каждый остаток следующему контроллеру в зависимости от URI.Вы также можете написать более сложные правила маршрутизации, используя регулярные выражения (что делает Django и многие другие фреймворки).
Например: / profile / hardik988
Будет передан ответственному контроллеруиз «профилей», который затем решает, что делать с оставшейся частью пути.Скорее всего, он найдет имя пользователя и отобразит соответствующий шаблон.