Htaccess (кодування): налаштування, приклади використання
Кожна людина, займаючись серфінгом в інтернеті, набредает на такі веб-сторінки і сайти, які некоректно відображаються. Наприклад, відкривши будь-якої сайт, користувач бачить замість зрозумілого тексту різноманітні закарлючки, серед яких можна розрізнити ієрогліфи, дуги, символи та інші знаки. Найбільш висока ймовірність побачити подібне при переході на будь-якої китайський або японський сайт. Все це відбувається через те, що там використовуються інші настройки в файлі .htaccess. Кодування в тих країнах інша. Правильно налаштований файл дасть можливість уникнути появи подібних незрозумілих символів на сайті.
Для чого необхідна кодування
Для сайту існує основна кодування, яку називають Default Charset. Включена вона в спеціальний файл .htaccess. Кодування необхідна для того, щоб вірно визначити правило, згідно з яким символи будуть перетворюватися в кодові значення.
Пару десятків років тому кодування були зовсім маленькими. Вони включали в себе не більше семи біт інформації. Прикладом може бути кодування ASCII. Тепер їх з`явилося дуже велика кількість. Серед них - і найпопулярніші cp1251, Windows-1251.
Суть полягає в тому, що документи, які мають різні кодування, будуть виглядати по-різному. Саме з цієї причини на сторінках сайту з`являються помилки. Браузер користувача може бути налаштований на один тип кодування, а файл .htaccess на сервері містить в собі іншу. В результаті весь текст на сторінках перетворюється в набір незрозумілих символів.
Основні кодування
У .htaccess можна вказати параметр, за допомогою якого буде визначатися головна кодування для всього веб-порталу. Крім цього можна прописати і інші кодування, що дозволить їм коректно відображатися на всіх сторінках сайту. Веб-розробниками в .htaccess кодування зазвичай вказується двох видів - cp1251 і Windows-1251. Саме вони за умовчанням використовуються великим числом браузерів і текстових редакторів.
Щоб уникнути утворення закорючек, які неможливо розібрати, необхідно або налаштувати головну кодування всього сайту за допомогою параметра Default Charset, а також в .htaccess заборонити перекодування файлів або прописати всі необхідні кодування. Адже головною проблемою є те, що, наприклад, користувач може відправити якісь дані в досконалої іншому кодуванні, яку сервер прочитати не зможе. Такі дії потрібно заздалегідь попередити.
Як налаштувати кодування сайту в файлі .htaccess
Кодування Default Charset, що є ключовою, що обробляється сервером за замовчуванням і відправляється браузеру, вказується за допомогою опції AddDefaultCharset. Необхідна вона для того, щоб додавати настройку кодування за замовчуванням. При відправці заголовків HTTP в них прописується правило, яке повідомляє браузеру, в якому кодуванні слід розглядати всі символи на сайті. Саме тому в розділі Content-Type потрібно вказувати вірну кодування. Це і є настройка .htaccess.
Вищевказана опція є основною необхідною директивою для того, щоб налаштовувати кодування сайту в файлі. Ця команда здатна остаточно вирішити проблему, пов`язану зі скриптами, за замовчуванням використовують невідомі для російськомовних браузерів кодування, а не ті, які потрібні. Якщо не прописати параметр, браузер б видав помилку. В іншому випадку автоматично всі документи перекодуються. Потрібно врахувати, що не всі браузери бачать кодування однаково. З цієї причини краще використовувати найвідоміші - cp1251 і Windows-1251. Вони відомі всім браузерам.
Від проблем з кодуванням можна позбутися за допомогою активації автоматичного перекодування документів. Для цього в файл .htaccess включається спеціальна опція CharsetSourceEnc. Після неї необхідно прописати основну кодування. Всі інші будуть перекодувати в неї. Якщо з тієї чи іншої причини перекодування потрібно буде прибрати, то слід написати в файлі команду CharserDisable On.
Завдання ще одного кодування для окремих розділів сайту
Таке не трапляється часто, але іноді виникає необхідність, щоб одна сторінка або ціла частина розділу відображалася на іншій мові. Відповідно, потрібна й інша кодування. У разі знаходження в кореневій директорії файлу .htaccess з прописаною кодуванням, всі сторінки сайту будуть відображатися саме в ній. Результатом може бути те, що людина зайде в іноземний розділ веб-сайту, а там замість тексту на потрібному йому мовою буде відображатися група незрозумілих символів і букв.
Для того щоб з цією проблемою розібратися, потрібна додаткова настройка .htaccess. Необхідно створити ще один такий же файл і в ньому прописати команду AddType, в якій вказується додаткова кодування. Цей файл може діяти як на весь веб-сайт, так і на окремі сторінки. Це залежить від того, де буде розташований файл .htaccess. Якщо розмістити його всередині папки з певною мовою сайту, його конфігурації будуть працювати лише на цю частину. Решта ж будуть функціонувати за правилами першого .htaccess, який знаходиться в кореневій директорії сайту.
Редирект за допомогою .htaccess
Багато розробники сайтів стикаються з такою ситуацією, коли при зміні діючого проекту потрібно зберегти старі адреси деяких сторінок. Особливо часто таке трапляється, коли змінюється система управління контентом, на якій сайт працює. Буває, що спочатку сайт був статичним і про логічність адрес ніхто не дбав. Необхідна переадресація (.htaccess вимагає внесення змін).
Переадресація також потрібна, якщо адміністратор хоче зберегти позиції сторінок сайту у видачі пошукових систем. Адже підвищувати рейтинг з нуля - це важке завдання.
Що потрібно для того, щоб була організована така переадресація? .htaccess повинен використовуватися на хостингу. Редирект в ньому здійснюється за допомогою опції Redirect 301, після якої вказується адреса нової сторінки.
Обмеження доступу
Для того щоб обмежити доступ до всього сайту, його розділів або певних файлів, які знаходяться на сервері, також використовується .htaccess. Доступ забороняється для того, щоб до файлів не зверталися ті користувачі, які можуть щось зіпсувати.
Використовуються наступні команди:
- Для заборони доступу до всього сайту в файлі прописується команда deny from all.
- Для заборони доступу з певного ip-адреси використовується команда deny from ip_адрес_пользователя.
захист файлів
Швидше за все, кожен користувач зустрічав абсолютно ідентичні статті на різних веб-сайтах. Найчастіше буває так, що їх просто крадуть з інших ресурсів. Звичайно, пошукові системи борються з таким явищем, як дублювання сторінок, але дуже часто вони не зовсім правильно вибирають першоджерело. Для копірайтерів і програмістів це є дуже серйозною проблемою. Адже для того, щоб написати якісний контент, йде багато часу і сил. А потім пошукова система накладає санкції за скопійований матеріал. Це неприємно. Часто з текстом також крадуть і зображення. При цьому велике число таких злодіїв навіть не завантажують зображення з чужих ресурсів. Щоб не перевантажувати свої сервери, вони просто вказують посилання на картинки з першоджерела. Така вставка посилання іменується хотлінк. Крім посилань на картинки їх можна вставляти, вказуючи на файли, які доступні для завантаження. Для автора контенту таке явище вкрай неприємно. Сервер першоджерела через них також перевантажується.
У файлі .htaccess можна вказати файли, які будуть захищені від хотлінк. У ньому прописуються розширення, до яких буде заборонений доступ. Також для готельних файлів або цілих груп можна встановити пароль. Потім файл .htaccess поміщається в директорію, доступ до якої потрібно закрити.
діагностика помилок
Буває так, що виникає помилка з кодом «500» після редагування або розміщення файлу .htaccess. Помилка така з`являється через недоліки в самому файлі. Можна дізнатися причини в файлі, який знаходиться в директорії домену, в папці зі звітами.
Також, якщо не виконується то, що зазначено в .htaccess, потрібно впевнитися в тому, що обробка даного файлу включена в настройках сайту.
Як бачите, файл .htaccess необхідний як для настройки кодування веб-сайтів, так і для інших корисних операцій, що дозволяють грамотно управляти розробкою і підтримкою різних проектів.