fbpx

Каталог статей

Каталог статей для размещения статей информационного характера

Технології

Створюємо ЧПУ (людино-зрозумілі урли) в скриптах за допомогою Smarty

Примітка: “Урл” – він же URL – універсальний адресу ресурсу, вона ж посилання на ресурс.
Людино-зрозумілі урли – це посилання, які виглядають не заплутаним нагромадженням питальних знаків і амперсандів (піктограму &) і передаються в них параметрів (типу такого – view_bill.php?id_bill=11 – і це ще не найгірший варіант), а як посилання на статичні html-сторінки – наприклад bill_11.htm. Крім того, що вони сприймаються набагато легше людиною, такі посилання охоче сприймаються пошуковими истемами (думка до речі, досить спірне – але більшість схиляється до нього), що призводить до кращої індексації таких сторінок – і відповідно краще знаходженню користувачами сайту. Що в кінцевому підсумку нам і треба.
Що б відпрацювати техніку створення ЧПУ за допомогою Smarty – ви можете завантажити демо-версію Скрипт продажу нерухомості – в ній є вже підключений Smarty, є тестове оголошення і повністю збережена робота з шаблонами. Всі приклади нижче будуть на базі шаблонів саме цій демо-версії.
Для створення цих самих ЧПУ в будь-якому з скриптів, используюущем шаблонизатор Smarty (зокрема, одним з моїх готових скриптів) нам знадобляться:
– модуль для Апача mod_rewrite (зазвичай вже встановлений на сервері, якщо не впевнені – поцікавтеся у свого хостинг-провайдера)
– файл .htaccess (також зазвичай на платному хостингу доступний для використання)
– безпосередньо файли-шаблони, які відповідають у скрипті за виведення посилань, які ми і повинні змінити.
Приступимо до “приготування”.
1. Створюємо файл .htaccess – якщо він у вас вже є, то просто відкриваємо його і додаємо нові рядки – наприклад у його кінець. Файл знаходиться в папці стем скриптом, для якого ми готуємо” наші ЧПУ.
2. В ньому прописуються правила заміни – як саме повинен сервер змінювати урли – так як по суті, змінюючи посилання, ми аж ніяк не порушуємо роботу скриптів – а вони як і раніше повинні отримувати очікувані параметри через посилання. Значить потрібно, що б сервер “перекладав” ті “зрозумілі” посилання, які ми зробимо – у вигляд “незрозумілі” людині, але зрозумілих скрипту. Цим і займається модуль Апача mod_rewrite.
Приклад запису у файл .htaccess, в якому визначаються правила заміни посилань виду bill_22.htm (22 – випадковий номер, залежить від конкретного оголошення його id номер) на зрозумілу скрипту посилання view_bill.php?id=22.
RewriteEngine On
RewriteRule ^bill_(.*).htm$ view_bill.php?id=textarea
Детальніше про команди, що використовуються у файлі:
RewriteEngine On – це відмітка про включення застосування правил переробки “урлов”
RewriteRule ^bill_(.*).htm$ view_bill.php?id=textarea
А це правило, яке перетворює посилання виду bill_12.htm у зрозумілий для скрипта вид view_bill.php?id=12
Символ ^ – означає початок рядка, а символ $ – її кінця
знак textarea – це той символ – у нашому випадку унікальний номер объвления, який виходить при обробці посилання – і захоплюється він за допомогою виразу.*) у нашій рядку пошуку і заміни.
Далі – на сайті потрібно організувати створення цих самих зрозумілих урлов (виду bill_12.htm). Робиться це в шаблоні – для скрипта нерухомості це наприклад шаблон виведення списку оголошень – tpl/template/view/_list_bill.tpl.
У шаблонному файлі знаходимо рядки, які формують посилання на оголошення, ось наприклад ця:
і в ній міняємо відповідно
bill.php?id={$bill.id}
на
bill_{$bill.id}.htm
Як бачите – для отримання номери оголошення використовуємо змінну Smarty {$bill.id}.
Таким чином на сайті посилання будуть виглядати як bill_12.htm (наприклад), а для скрипт сервер їх переробить в view_bill.php?id=12
Кузнєцов Сергій www.websmith.ru