Верх страницы
Обложка к записи ЧПУ на mod_rewrite
Время для прочтения: 0 мин. 4 сек.

ЧПУ на 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);

В следующий раз поговорим о структуре базы данных сайта для ЧПУ, алиасах, роутерах.

Ссылки

ВКонтакте
Одноклассники
Telegram

Комментарии
Подписаться
Уведомить о
guest
2 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Имя
Имя
6 лет назад

Развернули на части, а как эти части впихнуть в адресную строку ?

mihdan
6 лет назад
Ответить на  Имя

В чем заключается ваш вопрос? Какая задача перед вами стоит? Как вы пробовали ее решать, что получилось, что не получилось? Покажите примеры того, как вы решали вашу задачу. Спасибо за развернутый ответ )

PS: «Ничего не получается» — ответом не является