Как сделать ЧПУ-ссылки


ЧПУ-ссылки также иногда ещё называют SEF-ссылки (благодаря Joomla). В английской литературе они называются Friedly URL. Эти 3 термина означают только одно: замена длинных и непонятных ссылок на простые и понятные человеку.

Чтобы мы говорили об одном и том же, давайте окончательно определимся с понятием ЧПУ-ссылки. Посмотрите сейчас в адресную строку. Вы там увидите следующее: https://proglike.ru/lessons/php/Kak-sdelat-CHPU-ssyilki. В реальности ссылка выглядит так: https://proglike.ru/lessons.php?cat=php&id=354. Вот как раз замена последней ссылки на ту, что Вы сейчас видите, и называется преобразованием обычной ссылки в ЧПУ-ссылку.

Само преобразование состоит из двух этапов:

- Замена на странице всех ссылок на ЧПУ-ссылки.
- Обработка ЧПУ-ссылки, по которой переходит пользователь.

Первый этап весьма сложный. Здесь надо вытащить все ссылки на загружаемой странице (самый простой способ - через регулярные выражения), и заменить значение атрибута href на нужный адрес. Например, вот такую ссылку: https://proglike.ru/lessons.php?cat=php&id=35 заменить на https://proglike.ru/lessons/php/Kak-sdelat-CHPU-ssyilki. Здесь Вы должны понимать, что этот процесс замены уникальный для каждого сайта. Например, у меня все эти ЧПУ хранятся в базе. Поэтому я заранее для любого адреса могу построить ЧПУ-ссылку. Аналогично советую сделать и Вам.

Второй этап не легче первого. Сначала нужно добавить в файл .htaccess следующие строчки:

RewriteEngine on Options +FollowSymlinks RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) /?%{QUERY_STRING}

В данных строках происходит следующее: если пользователь делает запрос к несуществующему файлу или к несуществующему каталогу, то этот запрос передаётся к главной странице сайта (index.php), в которой он уже дальше будет обрабатываться. Например, Вы пишите в адресной строке:https://proglike.ru/lessons/php/Kak-sdelat-CHPU-ssyilki. Такого файла не существует, поэтому этот запрос передаётся в файл index.php.

В файле index.php этот запрос должен обработаться, и должно произойти обратное преобразование из ЧПУ-ссылки в обычную ссылку. А уже с обычной ссылкой, Вы легко справитесь. Аналогично с прямым преобразованием (из обычной ссылки в ЧПУ) обратное преобразование также уникально для каждого движка.

Как можно понять из прочитанного, вся сложность состоит в преобразованиях, а сам общий алгоритм очень простой.

И, напоследок, хочу затронуть плюсы и минусы ЧПУ-ссылок. Начнём с плюсов:

- Лучшая оптимизация под поисковые системы. Не секрет, что такие ЧПУ-ссылки значительно больше ценятся, чем обычные.
- Также если в самой ссылке есть ключевое слово, ведённое пользователем в поиске, то оно будет выделено. Поэтому помимо лучшего отношения поисковых систем, повышается конверсия переходов по Вашему сайту в поисковой выдаче.
- Человеку гораздо проще запомнить ЧПУ-ссылку, нежели обычную.

Серьёзных минусов я могу выделить только два:

- Увеличение нагрузки на сервер. Следствием является также более долгая загрузка страниц. Я могу по своему опыту сказать, что если Вы всё сделаете качественно, то увеличение произойдёт примерно на 25-30%. Но если вдруг преобразования очень сложные, а ссылок, нуждающихся в преобразовании, на странице очень много, то возможно увеличение вплоть до 100% (безусловно, может быть и больше, но это уже исключения из правил).
- Сложная реализация. Если Вы это делаете в первый раз, то даже при совсем простых преобразованиях, несколько часов времени точно убьёте.

И, наконец, хочу отметить, что вариантов создания ЧПУ-ссылок существует далеко не один. Если преобразования совсем простые, то достаточно использовать лишь файл .htaccess, разумеется, написав там соответствующий код. В этой же статье я показал Вам, на мой взгляд, самый простой способ создания ЧПУ-ссылок, которым я сам уже много раз пользовался.