Як змінити кодування сайту в файлі htaccess

Кожен користувач Інтернету під час серфінгу натикався на сайти, які відображаються некоректно. Наприклад, на таких сайтах могли відображатися замість зрозумілих слів неясні закарлючки у вигляді символів, дуг, ієрогліфів і так далі. Особливо висока ймовірність побачити такий сайт, якщо ви перейдете на який-небудь китайський або японський портал. А все тому, що там використовують інші кодування, ніж в Рунеті. Файл htaccess допоможе запобігти появі таких закорючек на вашому сайті.

Навіщо потрібна кодування на сайті

Існує основна кодування сайту, так званий Default Charset. Кодування потрібна для того, щоб визначати правило перетворення символів в кодові значення.

Раніше кодування були маленькими, і включали не більше 7 біт інформації, такі як ASCII. Тепер кодувань з'явилася велика безліч, включаючи популярні UTF8, і Windows 1251.

Суть в тому, що файл з різними кодуваннями буде виглядати по-різному. Саме через це і виникають помилки на сторінках сайту. Ваш браузер може бути налаштований на одне кодування, а на сервері у файлі htaccess може бути вказана інша, що в підсумку перетворює весь контент в місиво незв'язних символів.

Щоб уникнути появи нерозбірливих закорючек на сайті, вам слід або налаштувати головну кодування сайту за допомогою Default Charset і заборонити перекодування файлів, або прописати всі допустимі кодування в htaccess, включаючи UTF8, Windows-1251 та інші. Адже головна проблема в тому, що, наприклад, користувач може відправити дані в іншому кодуванні, і тоді сервер не зможе її прочитати. Вам потрібно попередити такі дії.

Як налаштувати кодування сайту в файлі htaccess

Щоб вказати ключову кодування Default Charset, яка за замовчуванням обробляється сервером і відправляється в браузер, скористайтеся опцією AddDefaultCharset. Вона необхідна для того, щоб додати (add) настройку кодування за замовчуванням (Default Charset). Справа в тому, що при відправці HTTP-заголовків, в них в розділі Content-Type прописується Charset, який передає браузеру, в якому кодуванні розглядати символи на сайті. Якщо хочете прописати UTF8, то вкажіть AddDefaultCharset UTF8, а якщо Windows-1251 - то AddDefaultCharset Windows 1251.

AddDefaultCharset - це основна директива, яка вам знадобиться для настройки кодувань сайту в файлі htaccess. Команда AddDefaultCharset остаточно вирішить проблему зі скриптами, які за замовчуванням використовують не UTF8 або Windows 1251, а якісь інші невідомі українським браузерам кодування. Якби ви не прописали параметр AddDefaultCharset, то в браузері з'явилася б помилка, а так всі документи перекодуються в основну кодування. Врахуйте, що не кожен браузер однаково бачить все кодування, тому краще використовуйте найпопулярніші - вже згадані UTF8 або Windows 1251.

Також ви можете позбутися від проблем з кодуваннями, якщо активуєте автоматичне перекодування файлів за допомогою htaccess. Для цього використовуйте опцію CharsetSourceEnc, після якої пропишіть основну кодування ресурсу, в яку будуть перекодувати всі інші. Якщо з якихось причин вам потрібно прибрати перекодування, то пропишіть в htaccess наступний рядок: CharsetDisable On.

Як задати ще одне кодування для деяких розділів сайту

Щоб розібратися з цією проблемою, вам необхідно буде створити окремий файл htaccess і прописати в ньому: AddType «text / html; charset = iso-8859-1 ».html. Справа в тому, що цей файл може діяти як на весь сайт, так і на окремі його каталозі. Все залежить від того, де ви помістіть htaccess. Якщо розмістіть другий htaccess всередині папки / fin / с фінським розділом сайту, то конфігурації будуть працювати тільки на цю частину ресурсу. Решта будуть підкорятися головному файлу htaccess, розміщеному в корені сайту. А за допомогою зазначеного рядка всі файли html в папці fin працюватимуть по ISO-8859-1.a

Схожі матеріали

Як змінити кодування сайту в файлі htaccess
Htaccess помилка 404

Як змінити кодування сайту в файлі htaccess
Htaccess заборона доступу до папки