ЧПУ на mod_rewrite
ЧПУ
(англ. Friendly URL) — веб-адреса, удобные для восприятия человеком (а также систем и методов построения таких адресов). Является аббревиатурой от словосочетания «человекопонятный урл» (где «урл» — жаргонное обозначение URL)
Без лишних вопросов создаем htaccess
следующего содержимого:
# Задаем кодировку для типов text/plain или text/html. # Лучше UTF-8, чтобы не было проблем с русскими УРЛами AddDefaultCharset utf-8 # Если mod_charset есть на сервере <IfModule mod_charset.c> # Отключаем перекодировку CharsetDisable On # Кодировка, в которой документы хранятся на диске CharsetSourceEnc utf-8 # Кодировка по-умолчанию для данного сервера CharsetDefault utf-8 </IfModule> # Позволяем следовать символическим ссылкам Options +FollowSymLinks # Если mod_rewrite есть на сервере <IfModule mod_rewrite.c> # Включаем mod_rewrite RewriteEngine On # Задаём "базовую" директорию, # относительно которой идут все запросы RewriteBase / # Если запрашиваем реальная папка или файл # ничего не делаем, иначе "заворачиваем" все запросы # на index.php, который лежит в RewriteBase RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php [L,QSA] </IfModule>
Главное требование — наличие mod_rewrite
на сервере и возможность производить настройки в htaccess
.
А уже в PHP
разбираем переменную $_SERVER["REQUEST_URI"]
на части:
// Получаем запрос, удаляя пробелы и слеши // в начале и конце строки $request = trim($_SERVER["REQUEST_URI"], '/'); // Разбиваем запрос на части $parts = explode('/', $request); // Удаляем случайные пустые элементы, которые // появляются, если, например, в запросе будет // два слеша подряд (/news//04/01/1986/) $parts = array_filter($parts, 'trim'); // Смотрим результат print_r($parts);
В следующий раз поговорим о структуре базы данных сайта для ЧПУ, алиасах, роутерах.
Развернули на части, а как эти части впихнуть в адресную строку ?
В чем заключается ваш вопрос? Какая задача перед вами стоит? Как вы пробовали ее решать, что получилось, что не получилось? Покажите примеры того, как вы решали вашу задачу. Спасибо за развернутый ответ )
PS: «Ничего не получается» — ответом не является