Блог веб разработки статьи | видеообзоры | исходный код

Блог веб разработки статьи | видеообзоры | исходный код

webfanat вконтакте webfanat youtube

ЧПУ htaccess

ЧПУ htaccess

Всем привет. Сегодня мы с вами рассмотрим процесс создания ЧПУ ссылок через служебный файл 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 адреса соответствующего первому шаблону будет происходит перенаправление на адрес соответствующий второму шаблону.

На этом данная статья подошла к концу. Если остались вопросы пишите их в комментариях или группе

вк.

Я с вами прощаюсь. Желаю успехов и удачи! Пока.

Оцените статью:

Статьи

Комментарии

Внимание!!! Комментарий теперь перед публикацией проходит модерацию

Все комментарии отправлены на модерацию

Реклама

Запись экрана

Данное расширение позволяет записывать экран и выводит видео в формате webm