Новини високих технологій
» » Як зробити ЧПУ-посилання: покрокова інструкція

Як зробити ЧПУ-посилання: покрокова інструкція

19-09-2017, 11:03
757
Світ інтернету стрімко розвивається і підкорює все нові вершини. Мільйони сайтів, сервісів і служб раді прийняти чергового користувача на своїх сторінках. Створено величезну кількість адрес, які генеруються автоматично. І не завжди їх зручно читати і запам'ятовувати. До того ж безглуздий набір символів погано ранжується пошуковими системами. Внаслідок цього виникла необхідність запровадити реалізацію коду таким чином, щоб він міг постати в більш зручному і приємному оці користувача вигляді.


Тому у світі веб-розробок з'явився термін ЧПУ-посилання. Про те, що це таке і як його реалізувати, піде мова в статті.

Що таке ЧПУ-посилання

Взагалі, ЧПУ - жаргонне слово, що означає людині зрозумілий урл. УРЛ - запозичення від англійського URL, уніфікованого локатора ресурсу. Людині зрозумілий, в свою чергу, означає набір символів в рядку, який зручно і легко сприймається. Наприклад, генерований адреса сторінки може виглядати так: http://example.com/index.php?page=name. Не дуже зрозуміло виглядає і не показує структуру сайту. Присутні знаки, що не несуть смислового навантаження і неясно, що означає сторінка ім'я. Наступний адреса може виглядати так: http://example.com/products/new/boat. Тут зрозуміло, що мова про продукції, причому нової, а конкретно - про човні. Це і є людині зрозумілий урл. Він набагато краще індексується пошуковими системами і показується у видачі вище за інших. А людина, відвідавши сайт, зможе зрозуміти, що зайшов саме в потрібний розділ.
Однак у ЧПУ-посилань є деякі обмеження. Наприклад, в адресі можна використовувати російські символи. Вони при цьому замінюються на числове значення і знак відсотка. Тому вітчизняні розробники використовують транслітерацію російських слів в латиницю. Наприклад, так - oborudovanie або produkcia. Також автоматично сформована ЧПУ-посилання може збільшити загальну довжину рядки.


Для реалізації транслітерації та перетворення до человекопонятным урлам використовуються спеціальні засоби. Доступні вони, як правило, в системах управління контенту - CMS. Створення ЧПУ-посилань відбувається в них автоматично, на основі назви товару, статті або блогу, а також розділу, в якому він розміщений. У підсумку, при створенні нового запису, додавання товару формується людині зрозумілий url, який добре сприймається людьми і машинами.

Як зробити посилання ЧПУ в популярних CMS

CMS — система управління контентом, яка в зручному і простому інтерфейсі дозволяє в короткі терміни створити повноцінний сайт. Функціонал розширюється за рахунок наявності великої кількості готових шаблонів, модулів і плагінів. Це дозволяє людині далекій від мов програмування PHP, jаvascript, HTML і суміжні їм, швидко створити свій власний сайт або блог. Практично всі системи управління контентом володіють відмінним набором інструментів у вигляді плагінів для створення ЧПУ. Варто докладніше розглянути найбільш поширені з них. WordPress — найпопулярніша, за статистикою, система управління контентом. Вона встановлена на більшості відомих блогів і сайтів. Славиться простотою освоєння і установки. Joomla — популярна менше, але все ж активно використовується серед розробників. Володіє хорошим функціоналом, вибором компонентів, плагінів і модулів. OpenCart — окремий проект для створення інтернет-магазинів. Внутрішньо нагадує будь-яку CMS, але «заточений» під вирішення вузького кола завдань.

ЧПУ-посилання в WordPress — простота реалізації

WordPress є, мабуть, найпростішою системою управління контентом. Вона здатна значно спростити створення сайту або блогу з нуля за короткий час.
Налаштування ЧПУ в WordPress проста і зводиться в основному до завантаження та встановлення плагіну Cyr-To-Lat. Він служить для перетворення кириличних рядків в латиницю.
Для початку варто знайти його і завантажити. Робити це краще з офіційного сайту WordPress. Так можна уникнути ймовірності попадання в плагін або шкідливого коду. Після скачування архіву його потрібно розпакувати. Потім треба перемістити цю папку в розділ wp-content ->plugins. Робиться це, як правило, з допомогою будь-якого доступного FTP менеджера. Тепер потрібно зайти в адміністративну панель WordPress, ввівши логін і пароль. У розділі «Додатки» треба знайти Cyr-To-Lat і активувати його. Плагін тепер встановлений в системі і включений. Далі, потрібно виконати настройку структури посилань. Для цього треба перейти в «Параметри», і там зайти в «Постійні посилання». У загальних налаштуваннях є кілька шаблонів, за якими можна побудувати зовнішній вигляд посилання. Рекомендується використовувати тип «Довільно», що дозволяє налаштувати все, що необхідно. Найпростіша конструкція такого шаблону - /%category%/%postname%/. Вона означає, що в адресному рядку буде виводитися категорія, а потім назву посади. А потім вже Cyr-To-Lat перетворює все це в латиницю. В результаті вийде красива і зрозуміла ЧПУ-посилання в WordPress. Крім Cyr-To-Lat, можна використовувати і аналоги, які присутні на офіційному сайті. Наприклад, такі — WP Translitera, ACF: Ukr-To-Lat, Ukr-To-Lat Advanced. Установка даних плагінах схожа, тому зупинятися на них окремо не має сенсу.

ЧПУ в Joomla, кілька варіантів створення

Joomla трохи більш складна система управління контентом. Так само, як і WordPress має властивість створювати сайти та блоги в короткі терміни. Вона має великий функціонал і гнучкість. Далі, потрібно описати як зробити посилання ЧПУ в даній CMS. Joomla спочатку володіє вбудованим функціоналом для створення человекопонятных урлов. ЧПУ-посилання в Joomla 3 можна включити на сторінці загальних налаштувань в розділі «Налаштування SEO». Пункт «Включити SEF (ЧПУ)» повинен бути встановлений в положення «Так». Таким чином посилання будуть перетворені у більш зрозумілий вигляд.
Тут же можна додатково встановити перенаправлення урлов, шляхом створення ЧПУ-посилання в htaccess. Цей файл виконує роль конфігураційного сховища веб-сервера Apache. В ньому можна з допомогою регулярних виразів і директиви RewriteRule змінити перетворення посилання в потрібний урл. Головна відмінність такого підходу - гнучкість. Можна навести посилання практично до будь-якого виду. Пункт «Додати суфікс до URL» приставляє в кінці рядка розширення документа. Наприклад, html. Дане розширення мало цікавить пересічного відвідувача сайту, тому опцію можна залишити в положенні «Ні».
Аліаси в Unicode - даний пункт проводить транслітерацію назви матеріалу в латиницю. Це потрібно для того, щоб замість російських букв або інших символів не відображалося щось дурне і неприпустимого.

Альтернативні компоненти для Joomla

Реалізувати генератор ЧПУ-посилань в Joomla можна також з допомогою різних компонентів. Наприклад, один з найпопулярніших - JoomSEF. Він розповсюджується безкоштовно і краще завантажувати його з офіційного сайту Joomla. В її функціонал, крім перетворення урлов в ЧПУ, є набір для генерування метаданих, пошукових машин, ключових слів, а також управління дублюючими сторінками. Варто відзначити наявну підтримку кодування UTF-8 і налаштування сторінки 404 на свій розсуд. В Joomla 3 можливі три способи установки: завантаження безпосередньо з комп'ютера, з каталогу сайту і за допомогою передачі посилання на нього. Для першого варіанту доведеться завантажити файл. Потім вибрати в меню адміністративної панелі CMS «Розширення» і перейти в «Менеджер розширень». З допомогою кнопки «Виберіть файл» треба показати системі підготовлений архів і встановити його. Другий варіант використовується рідко. А ось третій є найзручнішим із них, так як не вимагає завантаження. Достатньо всього лише скопіювати посилання на JoomSEF і вказати його в полі «Встановити з URL» на однойменній вкладці. Система сама перевірить його наявність і при відповідності всіх параметрів встановить. Варто зазначити, що для повноцінної роботи доповнення, потрібно щоб пункти «Включити SEF», «Перенаправлення URL» і «Додати суфікс до URL» в налаштуваннях SEO були переведені в положення «Так». Встановлений компонент відразу ж проникнути в систему в активному режимі і почне свою роботу. А саме, перетворює всі наявні посилання в більш естетичний вигляд. JoomSEF володіє великою кількістю настройок і опцій. З їх допомогою можна дуже тонко привести всі посилання сайту практично до будь-якого необхідного виду.

JBZoo і людині зрозумілий урл

Компонент JBZoo являє собою універсальний і потужний інструмент для створення інтернет-магазинів, каталогів, блогів і просто сайтів-візиток на базі системи керування контентом Joomla. Для установки JBZoo в Joomla в ній вже повинно бути додаток Zoo. Іноді стандартні налаштування SEF не дотягуються до своїх компонентів, щоб виконати перетворення. Тому для створення ЧПУ-посилань у JBZoo рекомендується застосовувати компонент sh404SEF. Даний продукт безкоштовний і є хорошим інструментом для формування посилань в JBZoo. Велика кількість налаштувань, функцій, підтримки різних соцмереж і сервісів. Установка проводиться шляхом копіювання посилання на архів, або за допомогою прямого завантаження файлу на сервер, завантаженого попередньо.

OpenCart та налаштування ЧПУ

OpenCart — це платформа без прив'язки до будь-якої системи управління контентом. Тобто функціонує окремо. Її головна спрямованість — зручне створення інтернет-магазинів різної складності. Незважаючи на те що сам продукт безкоштовний, багато доповнення до нього розповсюджуються на комерційній основі. Остання стабільна версія — 2.0.
ЧПУ-посилання в OpenCart 2 можна сформувати за допомогою ручного налаштування або ж за допомогою окремих модулів. Почати налаштування ЧПУ першим способом можна з редагування конфігураційного файлу htaccess веб-сервера Apache. Для цього потрібно перейти в папку сайту через FTP або наявний в адміністративній пам'яті файловий менеджер. У кореневому каталозі повинен лежати файл .htaccess.txt. Так як він не надає ніякої дії на систему з розширенням txt, то перше, що треба зробити — перейменувати його .htaccess. Тепер веб-сервер буде читати його директиви і виконувати їх. Тепер потрібно перейти в налаштування сайту та на вкладці «Сервер» включити використання ЧПУ. Всі зміни потрібно зберегти. Тепер всі посилання повинні зміниться. Іноді, в силу деяких причин, багато адреси все ж не змінюються і залишаються незрозумілими. Для реалізації цього завдання можна використовувати компонент SeoPro. Правда, перед його установкою доведеться спочатку реалізувати OCMOD Multiline Fix. Для цього потрібно вручну змінити код одного файлу. Знаходиться він за адресою admin/controller/extension/modification.php. Для його редагування рекомендується використовувати утиліту Notepad++, щоб уникнути проблем з кодуваннями.
Додати потрібно всього один рядок коду у блок після змінної $limit. Виглядає вона так: $quote = $operation->getElementsByTagName('search')->item(0)->getAttribute('quote'); Далі, потрібно знайти умову: if (!$limit) { $limit = -1; } і після нього додати: if ($quote == 'true') { $search = preg_quote($search); } Дані файли після зміни потрібно зберегти. Потім треба власне встановити і сам модуль SeoPro. Скачаний архів потрібно розпакувати на сервері. Потім виконати кілька запитів до бази даних за допомогою phpmyadmin: ALTER TABLE `oc_product_to_category` ADD `main_category` tinyint(1) NOT NULL DEFAULT '0'; ALTER TABLE `oc_product_to_category` ADD INDEX `main_category` (`main_category`); Тепер потрібно поправити головний файл index.php. В ньому цікавить рядок: $controller->addPreAction(new Action('common/seo_url')); яка замінюється на: if (!$seo_type = $config->get('config_seo_url_type')) { $seo_type = 'seo_url'; } $controller->addPreAction(new Action('common/' . $seo_type)); Далі йде набір процедур, пов'язаних з налаштуваннями всередині адмінки. В меню треба знайти «Модулі», перейти в «Модифікатори» і натиснути на оновлення. Перебуваючи тут же, потрібно перейти до списку «Модулі» і в ньому встановити SeoPro. Потім, по натисненню кнопки «Редагувати» зайти в нього і зберегти. Після всіх маніпуляцій все має запрацювати, якщо ні, то треба спробувати знову перевстановити модуль. Або звернутися за допомогою до спеціалізованих форумах.

Реалізація функціоналу ЧПУ на мові PHP

Більшість сайтів в Мережі написані на PHP. Він досить потужний, зручний і простий у вивченні. Його робота непомітна для користувача, так як обробка PHP-коду відбувається на стороні сервера та браузера відправляється вже готова HTML-сторінка, зрозуміла йому.
Показати реалізацію ЧПУ-посилань на PHP можна на невеликому прикладі коду. Проте для приведення рядків адреси в реальних багатосторінкових проектах до человекопонятному увазі, доведеться повозитися. Будь-сайт починає свою роботу з файлу index.php. В тому числі і генерує звернення до інших сторінок сайту. Але спочатку потрібно трохи змінити конфігураційний файл htaccess. У ньому треба вказати або расскомментировать кілька директив, як показано на фото.
Перший рядок дозволяє перетворити URL за допомогою сервера. Друга — встановлює базовий адресу. Наступні два рядки виконують перевірки на присутність файлу і папки. Остання передає управління у index.php якщо 3 і 4 рядок реалізуються без помилок. Для зберігання відповідності id сторінки та її перетвореного значення потрібна таблиця. Тому її треба створити. Зокрема, можна створити простеньку, для розуміння процесу. Вона буде містити два поля: SEF і page_id. SEF зберігає назву і має тип varchar. А page_id - номери сторінок типу int. Тепер залишилося поправити і сам файл index.php. Це всього лише приклад і на практиці конкретного проекту може бути трохи інакше: $result = $_SERVER['REQUEST_URI']. У цьому рядку в змінну $result передається запитаний url. if (preg_match ('/([^a-zA-Z0-9./-_#])/', $result)) {header('HTTP/10404 Not Found'); echo 'Неприпустимі символи URL'; exit;} У цьому блоці перевіряється наявність символів, цифр і деяких знаків. Якщо є щось інше крім перерахованих, то видається сторінка 404. $array_url = preg_split ('/(/|*$)/', $result,-1 PREG_SPLIT_NO_EMPTY); Тут оголошено масив $array_url, який з допомогою функції preg_split містяться елементи, що не мають нічого зайвого в ЧПУ. if (!$array_url) {$ID_page = 1;}else{$sef_value = $array_url[0]; Тут відбувається обробка запиту в разі, коли звернення було вироблено не до конкретної сторінці, а до домену. Тому потрібно у відповідь відправити id = 1. Також на цьому місці мається на увазі запит до бази даних проекту, який дізнається, чи є в ній значення змінної $sef_value в поле SEF. Якщо нічого не знайдено, відправити користувачеві сторінку 404. Наприкінці йде обробка отриманого в результаті коду адреси та видача відповідних матеріалів або елементів.

Плюси і мінуси використання ЧПУ

Переваги використання человекопонятных урлов можна перерахувати таким чином: посилання візуально виглядає естетичніше, ніж набір незрозумілих символів, особливо на незнайомих сайтах; запам'ятовування адреси відбувається набагато легше; весь шлях і структура сайту стає зрозумілою; GET-параметри, що передаються звичайним шляхом, використовують змінні в адресному рядку, чого немає у ЧПУ, а значить, не порушується безпека; поліпшення навігації по сайту; СЕО-оптимізація значно поліпшується і пошукові роботи краще індексують такий сайт. Недоліків значно менше. І найсуттєвіший з них - це налаштування. Не завжди вдається привести адреси сторінок до человекопонятному виду шляхом штатних або сторонніх рішень. Іноді доводиться вникати в код і правити його самостійно, що вимагає знань і часу. Другий недолік не так важливий і стосується сайтів з великою відвідуваністю. З-за формування посилання на «льоту» підвищується навантаження на сайт. Але так як вартість мережевого обладнання неухильно знижується, то такі витрати на ресурси сервера мало хто вважає. Загалом, переваги значно переважують недоліки, тому незважаючи на складну реалізацію человекопонятных урлов, використовувати їх варто.

Висновок

У статті розглянуто, які є посилання ЧПУ, а які ні. Були детально розписані найбільш прості і швидкі рішення проблеми. А також декілька найбільш доступних варіантів складних підходів. У будь-якому випадку використання CMS при розробці сайту значно знижує трудо - та часові витрати при оптимізації адрес сторінок. Тому зв'язка CMS і ЧПУ повинна бути використана як найбільш ефективна альтернатива ручній розробці.
Цікаво по темі
що таке лінк, і як він використовується?
що таке лінк, і як він використовується?
Опис застосування терміна "лінк": що під ним мається на увазі, і де використовується. Різновиди і типи лінків.
Установка Joomla на Denwer: докладне керівництво, особливості створення та рекомендації
Установка Joomla на Denwer: докладне керівництво, особливості створення та рекомендації
Як виконати установку Denwer і Joomla на комп'ютер. Опис всіх етапів налаштування і конфігурування цих продуктів.
Як поміняти фавикон сайту в різних CMS?
Як поміняти фавикон сайту в різних CMS?
Яким чином можна змінити фавикон в різних системах управління контентом? Опис процесу для систем Joomla, "Бітрікс" і WordPress.
Як дізнатися движок сайту, і навіщо це треба?
Як дізнатися движок сайту, і навіщо це треба?
Опис і призначення движків сайтів. Як дізнатися, на якому движку працює сайт, і навіщо це може знадобитися.
Magnet-посилання: що це і як його використовувати?
Magnet-посилання: що це і як його використовувати?
В останні роки програма по захисту авторських прав різко посилилася. У зв'язку з цим багато торрент-трекери були закриті, файли, видалені, а