Верх страницы
Обложка к записи ЧПУ на 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);

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

Ссылки

Автор: Кобзарёв Михаил

Русский разработчик с 20-ти летним стажем. Работаю с PHP, ООП, JavaScript, Git, WordPress, Битрикс, Joomla, Drupal, Opencart, DLE, Laravel, Moonshine, SuiteCRM.

Оптимизирую сайты под Google Page Speed, настраиваю импорты для больших магазинов на WooCommerce + WP All Import. Пишу плагины на заказ. Все мои услуги.

Веду блог о разработке, дайджест в телеграмме и в ВК.

Вы всегда можете нанять меня.

Комментарии
Подписаться
Уведомить о
guest

2 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
Имя
Имя
9 лет назад

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

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

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

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

Предыдущая запись

Давайте дружить
в Телеграме

Авторский блог вашего покорного слуги в Telegram про web, программирование, алгоритмы, инструменты разработчика, WordPress, Joomla, Opencart, Laravel, Moonshine, фильмы и сериалы