Всем привет. Сегодня мы с вами рассмотрим процесс создания ЧПУ ссылок через служебный файл htaccess. Итак, поехали!
ЧПУ расшифровывается как человеко-понятные url. То есть эти ссылки визуально имеют более упрощенную структуру. Примеры:
Обычная ссылка:
https://mysite.com/news.php?id=54
ЧПУ ссылка:
https://mysite.com/news/54
Эти ссылки по сути ведут на одну и ту же страницу, но имеют разную структуру. Согласитесь что ЧПУ ссылка по сравнению с обычной лучше воспринимается. В данном примере это реализовано за счет скрытия расширения файла и передаваемого параметра. Благодаря этому, такая ссылка содержит меньше символов и лучше индексируется поисковыми роботами. Ну да ладно! Теперь перейдем к созданию ЧПУ ссылок.
В примере мы будем преобразовывать ссылку типа https://mysite.com/news.php?id=54 в ЧПУ https://mysite.com/news/54.
Для этого нам понадобится создать служебный файл .htaccess.
Сразу скажу что этот файл не имеет названия и содержит только расширение htaccess.
Для создания нашей ЧПУ ссылки в самом файле htaccess нужно прописать всего две строчки.
RewriteEngine on
RewriteRule ^([a-z]+)/([0-9]+)/? $1.php?id=$2 [L]
Первой строчкой мы активизируем механизм mod_rewrite. Он дает возможность делать перенаправления с одного url адреса на другой. Во второй строчке мы пишем правило которое говорить что если в url встречается строка соответствующая первому шаблону регулярного выражения (^([a-z]+)/([0-9]+)/? ) ,то мы делаем перенаправление на второй шаблон ($1.php?id=$2). Третий параметром передается флаг L который служит для остановки текущей итерации обработки запроса.
Во втором шаблоне у нас указаны $1 и $2 - это по сути подшаблоны первого шаблона которые указаны в скобочках.
$1 - соответствует подшаблону ([a-z]+)
$2 - соответствует подшаблону ([0-9]+)
То есть найденные соответствия подшаблонов первого шаблона подставляются во второй шаблон.
В результате отработки данного кода, если придет запрос по url https://mysite.com/news/54 ,то произойдет перенаправление на адрес https://mysite.com/news.php?id=54. И в итоге нам загрузится страница по адресу https://mysite.com/news.php?id=54, а url в адресной строке останется https://mysite.com/news/54.
Мы также можем спокойно менять передаваемый параметр id.
https://mysite.com/news/23
Здесь мы перейдем на ту же страницу, но уже с параметром ?id=23.
И еще с помощью данного правила мы можем переходить на любую другую существующую страницу которая на находится на том же уровне что и news.php, с передаваемым параметром id.
К примеру:
https://mysite.com/test/23
Здесь мы перешли на страницу test.php c параметром id=23 (https://mysite.com/test.php?id=23)
А здесь мы перейдем
https://mysite.com/user/3
на страницу user.php с параметром id=3 (https://mysite.com/test.php?id=23).
И так далее...
Вот в принципе и весь принцип построения ЧПУ ссылок. Просто в файле htaccess активируем механизм mod_rewrite и пишем правило по которому с одного url адреса соответствующего первому шаблону будет происходит перенаправление на адрес соответствующий второму шаблону.
На этом данная статья подошла к концу. Если остались вопросы пишите их в комментариях или группе
вк.Я с вами прощаюсь. Желаю успехов и удачи! Пока.