На сьогоднішній день Apache є найбільш поширеним серед HTTP серверів. Поширюється дане програмне забезпечення абсолютно безкоштовно, і підтримує сценарії CGI, Perl, PHP і Java.

У квітні 1996 року цей сервер став самим популярним в мережі, а в серпні 2007 року він став основним сервером для 51% всіх сайтів мережі.

Htaccess — являє собою файл, що містить додаткові конфігурації для популярного сервера Apache, а також багатьох інших подібних йому серверів.

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

Всі ці зміни, прописані в файлі htaccess, дозволяють робити все необхідне, не надаючи користувачу доступу до головного файлу конфігурації, тобто всі зміни, прописані в цьому файлі, не роблять впливу на роботу сервера в цілому.

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

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

Директиви, які можуть бути внесені в файл htaccess, відкривають перед кожним користувачем широкий перелік можливостей в області налаштувань сайту, у число яких входять:

  • Директиви перенаправлення простого типу;
  • Директиви перенаправлення складного типу;
  • Індексні сторінки;
  • Висновок помилок php htaccess;
  • Кодування сторінки;
  • Управління параметрами доступу;
  • Створення паролів для певних директорій;
  • Параметри PHP.

Як створити файл htaccess?

Створення даного файлу не є складною процедурою. Створити файл htaccess, наприклад, для wordpress можна за допомогою звичайного текстового редактора «Блокнот», який є в кожному комп’ютері, що працює під управлінням операційної системи Windows.

Алгоритм створення такого файлу виглядає наступним чином:

  • Відкрийте Блокнот.
  • Переконайтеся, що в налаштуваннях програми (меню формат), функція переносу слів відключена.
  • У меню файл виберіть команду «створити» і створіть новий документ.
  • Далі, в тому ж меню оберіть пункт «Зберегти як», вручну вбийте тип файлу .htaccess, як показано на малюнку нижче, та збережіть файл у відповідному каталозі.

Ваш файл готовий, тепер його необхідно завантажити на ваш сайт.

Існує ще один спосіб створення файлу htaccess з допомогою програм Total Commander або FileZilla.

  • Створюємо в будь-якому текстовому редакторі файл htaccess з розширенням txt.
  • C допомогою програми Total Commander або FileZilla знаходимо цей файл і натискаємо правою кнопкою миші на його імені. З випадаючого меню вибираємо пункт «перейменувати».
  • Перейменовуємо htaccess.txt в .htaccess і зберігаємо зміни.

Що таке htaccess і чому цей файл володіє таким великим значенням?

Як задається кодування в файлі htaccess?

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

Щоб вирішити дану проблему, використовуваний тип кодування вказується в Web налаштуваннях сервера Apache і в заголовку того документа, який необхідно відобразити.

Причому для того, щоб браузер зміг відобразити файл правильно обидві ці кодування повинні повністю збігатися. У заголовках російськомовних веб-сторінок найбільш часто зустрічаються наступні типи кодувань:

  • Windows-1251;
  • KOI8-r;
  • Cp866;
  • Windows-1252;
  • Windows-1250;
  • UTF-8.

Давайте розглянемо, яким чином можна вказати, яка кодування необхідна для сайту за промовчанням через файл під назвою htaccess. Команда AddDefaultCharset задає таблицю символів або як її прийнято називати кодування, для кожної видається браузером сторінки сайту на сервері.

Для того щоб вказати кодування, в якій браузер буде відображати станицю, потрібно використати команду: «AddDefaultCharset
UTF-8».

Під час завантаження файла на сервер існує можливість його перекодування. Для перекодування слід зазначити, що всі отримані файли будуть мати кодуванням UTF-8. Для того щоб передати дану кодування всім завантажуються на сервер файлів вводимо команду: «CharsetSourceEnc UTF-8».

У разі, якщо вам необхідно відмінити перекодування файлу сервером вносимо команду: «CharsetDisable on».

Що таке htaccess rewriterule?

Модуль mod_rewrite, який є в складі сервера Apache, являє собою потужний засіб, що дозволяє перетворювати URL-адреси. З його допомогою реальними стають будь-які перетворення, які можуть виконуватися або не виконуватися в залежності від умов і факторів їх настання.

Даний модуль являє собою різнобічний механізм, заснований на різних правилах і командах, більш науковою мовою його називають синтаксичним аналізатором, для роботи якого застосовуються регулярні вирази, що виконують перетворення URL.

Але використання даного механізму помітно збільшує завантаженість сервера, тому не варто зловживати даним модулем.

Для того щоб включити механізм перетворення мережевих адрес, слід прописати в директиві RewriteEngine значення on таким чином: «RewriteEngine on». А ось установка значення off відключає даний модуль.

Директива RewriteRule визначать набір правил для перетворення. Вона володіє наступним синтаксисом: RewriteRule (шаблон пошукового запиту) (рядок використовується в якості заміни) [прапори].

В якості шаблону пошукового запиту виступають регулярні вирази, які застосовуються до URL. А в ролі рядка, використовуваної в якості заміни, можуть зазначатися текст, посилання або значення серверних змінних.

Налаштування ЧПУ в файл htaccess

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

Структура файлу htaccess дозволяє вносити зміни в будь — URL, в тому числі і URL з будь-яким рівнем вкладеності адресного рядка.

Налаштування htaccess для правильного функціонування полягає в необхідності прописати у файлі htaccess«RewriteEngine On», щоб змусити працювати всі прописують команди.

Існує кілька основних типів адрес сторінок, а значить і кілька способів перетворення цих адрес у ЧПУ.

1. Прості URL адреси типу: http://www.primer.ru/page.html

Щоб подібний адреса перетворити в URL виду http://www.primer.ru/page/ необхідно наявний файл htaccess внести наступну команду: «RewriteRule ^page/$ page.html [L]».

А для того, щоб пошукова система не змогла замінити цю адресу на адресу зі слешем у закінченні і без нього трохи модернізуємо внесений код:

«RewriteRule ^page$ page/ [R=301,L]
RewriteRule ^page/$ page.html [L]».

2. Адреси з GET-параметри, які виглядають наступним чином http://www.primer.ru/index.php?id=4&cid=16.

В даному випадку крім самого адреси команді необхідно буде отримати ще й Get-параметри. В адресі, наведеному в прикладі, існують id і cid параметри, які наділені значеннями 4 і16. Щоб з цієї адреси зробити адреса виду http://www.primer.ru/getparam прописуємо такі команди:

«RewriteRule ^getparam$ getparam / [R=301,L]
RewriteRule ^ getparam /$ index.php?id=4&cid=16 [L]»

Якщо подібна конструкція в htaccess не працює із-за особливостей сервера і того як проведена настройка файл htaccess слід прописати цю команду трохи інакше:

«RewriteCond %{QUERY_STRING} ^id=4&cid=16$
RewriteRule ^index.php$ http://www.primer.ru/getparam? [R=301,L]
RewriteRule ^ getparam /$ http://www.primer.ru/getparam? [R=301,L]
RewriteRule ^ getparam id=4&cid=16»

У даному випадку виконання команди буде зациклено, про що браузер обов’язково повідомить вам, і щоб цього не сталося, слід трохи змінити рядок:

«RewriteRule ^ getparam id=4&cid=16&xxx=1»

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