ЧПУ
(англ. 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);
В следующий раз поговорим о структуре базы данных сайта для ЧПУ, алиасах, роутерах.
Ссылки
Источник: https://www.kobzarev.com/programming/friendly-url/