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

Проблема

Взагалі, .htaccess – це файл додаткової конфігурації Apache. Його особливістю є те, що цей файл має лише розширення, без імені. Це й спричиняє деякі труднощі.

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

2. Перший випадок, але тільки у вас з'являються розширення файлів і ви змінюєте "Новий текстовий документ.txt" на ".htaccess". З'являється така помилка.

Як же створити цей файл?

Рішення

1. Ви можете просто завантажити готовий htaccess. Наприклад, для CMS wordpess можна завантажити за посиланням . Якщо у вас система керування контентом інша, можете просто видалити весь вміст файлу і налаштувати під себе. Можна також завантажити порожній htaccess.

134байт Кількість завантажень: 266

2. Створити htaccess можна в файловому менеджеріВи використовуєте для зв'язку з хостингом (сервером), наприклад, WinSCP. New -> File

Для редагування раджу використовувати текстовий редактор. Якщо ви знаєте ще способи, можете доповнити тему .

За підтримки.

Зараз для роботи переважної більшості сайтів у мережі використовується веб-сервер Apache. Він трохи відстає у продуктивності, зате дуже простий у налаштуванні і має величезну кількість можливостей.

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

Налаштування файлу htaccess дуже схоже на налаштування головного файлу конфігурації Apache. Але вона трохи відрізняється. За допомогою цього файлу ви можете налаштувати редиректи, внутрішню зміну URL, права доступу, авторизацію по паролю та багато іншого. У сьогоднішній статті ми розглянемо, як правильно налаштувати htaccess для вашого сервера.

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

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

Загальний синтаксис директив дуже простий, це пари команд та їх опцій, розділених пробілом, наприклад:

Команда параметр1 параметр2 прапори

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

Налаштування доступу htaccess

Досить часто htaccess використовується для керування доступом до папки. Для керування доступом використовуються три команди:

  • order- Порядок;
  • deny- заборонити;
  • allow- Дозволити.

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

Потім за допомогою директиви allow або deny ми дозволяємо або забороняємо доступ до папки з певних адрес. Наприклад, щоб заборонити все, необхідно додати в htaccess:

Order deny,allow
Deny from all

Але ми також можемо дозволити доступ лише з локальної мережі:

Order deny,allow
Deny from all
Allow 192.168.0.

Якщо вказано deny,allow, то перевірка буде виконуватись у такому порядку. Спочатку всі директиви deny, потім усі директиви allow, і якщо жодна з умов не підійшла, то запит пропускається. При allow,deny такий запит буде за замовчуванням відхилений. Наприклад, попередній приклад можна написати так:

Order allow,deny
Allow 192.168.0.

Модифікація URL у htaccess

Найчастіше htaccess використовується для модифікації URL під час виконання або редагування. За цю функціональність відповідає модуль mod_rewrite і він активований в більшості конфігурацій Apache.

Модифікація URL у htacces виконується за допомогою трьох директив, це RewriteBase, яка вказує префікс адреси, RewriteCondперевіряє відповідність, та RewriteRule- змінює URL у відповідності з регулярним виразом, якщо всі правила відповідності підходять.

Спочатку потрібно включити Mod_Rewrite, якщо модуль ще не активний:

RewriteEngine on

Вкажемо, що як префікс для URL потрібно використовувати корінь:

І автоматично замінюватимемо URL адреси з index.html на index.php, зверніть увагу, що вихідна URL - це шлях до запитуваного файлу щодо розташування файлу htaccess:

RewriteRule index.html /index.php

Для більш ефективної заміни можна використовувати регулярні вирази вони складаються зі спеціальних символів і змінних та звичайних символів та цифр. Розглянемо основні спеціальні символи:

  • ^ - Початок рядка;
  • $ - кінець рядка;
  • . - будь-який символ;
  • * - будь-яку кількість будь-яких символів;
  • ? - Один певний символ;
  • - Послідовність символів, наприклад, від 0 до 9;
  • | - символ або вибирається або одна група, або інша;
  • () - використовується для вибору груп символів.

У регулярних виразах htaccess також можна використовувати змінні з даними, отриманими із заголовків запиту, наприклад:

  • %(HTTP_USER_AGENT)- поле User-Agent, яке передає браузер користувача;
  • %(REMOTE_ADDR)- IP адреса користувача;
  • %(REQUEST_URI)- URI, що запитується;
  • %(QUERY_STRING)- Параметри запиту після знака?

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

RewriteEngine On;
RewriteBase/;

Директива RewriteCond дає ще більше гнучкості, ви можете вибрати до яких адрес варто застосовувати модифікацію, наприклад, будемо перевизначати дані тільки для версії з www:

RewriteBase/;
RewriteCond% (HTTP_HOST) ^www.site.ru$
RewriteRule ^(.*)\.html$ $1.php

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

Налаштування редиректів у htaccess

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

Найпростіший редирект можна виконати без mod_rewrite, за допомогою такого рядка:

Redirect 301 /index.html http://www.site.ru/index.php

Але зазвичай потрібні перенаправлення з ширшою дією. Все виглядає дуже схоже, тільки тепер ми використовуємо прапор, щоб не враховувати регістр, [L] для припинення обробки та [R] - для редиректу. Наприклад, перенаправлення htaccess з версії без www на домен з www:

RewriteCond %(HTTP_HOST) ^site\.ru$
RewriteRule ^(.*)$ http://www.site.ru/$1

Значення R=301 означає код редиректу, який буде повернутий клієнту, можна використовувати 301, 302 і т.д. Редирект htaccess з домену www на домен без префікса буде виглядати так:

RewriteCond %(HTTP_HOST) ^www.site\.ru$
RewriteRule ^(.*)$ http://site.ru/$1

Так само можна зробити переадресацію:

RewriteRule ^стара_адреса /нова_адреса/$1

Редирект з http версії на https:

RewriteCond %(SERVER_PORT) ^80$
RewriteCond %(HTTP) =on
RewriteRule ^(.*)$ https://site.ru/$1

Налаштування сторінок помилок у htaccess

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

Налаштування htaccess для цього пункту буде дуже корисним. Ви можете використовувати директиву ErrorDocument. За допомогою неї можна задати html сторінки для помилок 4хх та 5хх. Наприклад, для 404:

ErrorDocument 404 http://site.ru/error/404.shtml
ErrorDocument 403 http://site.ru/error/403.shtml
ErrorDocument 401 http://site.ru/error/401.shtml
ErrorDocument 500 http://site.ru/error/500.shtml

Кешування в htaccess

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

Спочатку активуємо модуль та встановлюємо період кешування за замовчуванням:

ExpiresActive On
ExpiresDefault "access plus 1 month"

Тепер ми можемо налаштувати кешування для кожного mime типу файлів:

ExpiresByType text/html "access plus 1 month 15 days 2 hours"
ExpiresByType image/gif "access plus 5 hours 3 minutes"
ExpiresByType image/x-icon "access plus 2592000 seconds"

У першому рядку ми вказуємо, що сторінки html потрібно вважати придатними на один місяць 15 днів та дві години з моменту завантаження. Доступні такі типи файлів:

  • image/x-icon;
  • image/jpeg;
  • image/png;
  • image/gif;
  • application/x-shockwave-flash;
  • text/css;
  • text/javascript;
  • application/javascript;
  • application/x-javascript;
  • text/html;
  • application/xhtml+xml;

Щоб бути впевненим, що ця конструкція не викличе помилок, укласти її в if:


Стиснення файлів у htaccess

Для стиснення Apache можна використовувати модуль deflate. Тут досить просто перерахувати mime типи файлів, які потрібно стиснути. Наприклад:

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript

Ви також можете укласти конструкцію if, щоб перевірити чи підтримується цей модуль:


Висновки

У цій статті ми розглянули, як виконується налаштування файлу htaccess для правильної роботи вашого сайту. Усі дії виконуються негаразд і складно. Достатньо скопіювати кілька рядків та виправити їх під свої потреби. Якщо у вас залишилися питання, запитуйте у коментарях!

На завершення пропоную відео з оглядом конфігураційного файлу Apache:

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

Навіщо потрібен файл.htaccess

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

Налаштуванням, які диктує файл, підпорядковується та директорія, в якій.htaccess розташований, а також всі директорії, що входять до неї.

Не створюйте ще один файл.htaccess, якщо на вашому сайті такий вже є. Щоб його правила діяли на інші директорії, допишіть додаткові правила у файл.

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

Для того, щоб зробити це, скористайтеся файловим менеджером, зайшовши в потрібну папку. Після створення нового файлу з ім'ям.htaccess ви можете розпочати його налаштування.

Обмежений доступ

Для того, щоб убезпечити ваш проект або окремі його частини від небажаних гостей, надійним рішенням буде обмежити доступ за IP-адресою відвідувачів. Якщо на вашому сайті почастішали запити до його адміністративної частини, це може бути спробою злому. Щоб обмежити себе від таких загроз, найкращим рішенням буде блокування доступу до даного розділу сайту з усіх ip-адрес за винятком вашої та тих, яким ви довіряєте. Далі ми детальніше розглянемо настройку.htaccess.

Для закриття доступу до всього сайту повністю в правилах.htaccess файлу має бути прописано:

Order deny,allow Deny from all Allow from *.*.*.*

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

Для адрес, що належать до однієї підмережі, потрібно вказати замість останньої зірочки діапазон 0/*.
Наприклад:

Allow from *.*.*.0/11

Якщо ви не знаєте свою ip-адресу, скористайтесь одним із безлічі сервісів в інтернеті, наприклад: https://2ip.ru/

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

Заборона доступу до конкретних адрес

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

Order allow,deny Allow from all Deny from *.*.*.*

Тут, на відміну від минулого прикладу, спочатку надається доступ, а вже після — забороняється. Рядок Allow from all дає доступ всім відвідувачам сайту. Третій рядок блокує доступ до сайту для вибраного IP. Як і минулого разу, додавайте нові ip c нового рядка. Зверніться до технічної підтримки свого провайдера, щоб дізнатися ip-адресу, з якої ведуться запити до вашого майданчика.

Встановлення пароля для доступу до папки.

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

Головний мінус такого способу - пароль визначається лише для одного відвідувача. Щоб ним могли користуватися відразу кілька людей, нам знову буде потрібна допомога.htaccess. У файлі.htaccess впишіть нові налаштування.

AuthName "your_text" AuthType Basic Require valid-user AuthUserFile "повний_шлях_до _файлу_.htpasswd"

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

Рядок Require valid-user відкриває доступ до будь-яких імен користувачів. Вказати свій список імен ви можете, перераховуючи їх через ком замість valid-user.

Логін та пароль для доступу до папки повинні бути зашифровані та утримуватись у файлі.htpasswd з цієї ж директорії. У четвертому рядку потрібно вказати шлях до цього файлу. Для створення файлу також можна використовувати файловий менеджер.

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

Файл .htaccess(Hypertext Access, Доступ до гіпертексту) — це файл конфігурації сервера, який знаходиться в кореневій папці сайту. У цьому файлі можна зробити додаткові налаштування для захисту від хакерів і спаму, наприклад, заборонити доступ до певного файлу або папки, встановити пароль на папку, додати редиректи запитів, заблокувати ip і так далі. Це потужний інструмент, який можна використовувати для підвищення безпеки сайту.

У цій статті ви дізнаєтесь, що можна додати до файлу .htaccessдля підвищення безпеки сайту.

Що може робити.

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

Відображати приховані файли у Filezilla

Файл використовується для налаштування сервера, типове застосування файлу:

  • Включає та вимикає редиректи на інші сторінки
  • Додає пароль до папок
  • Блокує користувачів по IP
  • Вимикає показ вмісту папок
  • Створює та використовує власні сторінки для помилок

У Вордпресі цей файл використовується для створення красивих постійних посилань (Налаштування - Постійні посилання - Загальні налаштування), і створюється автоматично, коли ця функція вмикається.

Якщо ви знаєте, навіщо потрібен цей файл, переходьте до .

Зробіть бекап

.htaccessДосить чутливий файл, тому одна помилка в синтаксисі може покласти весь сайт. Скопіюйте файл на комп'ютер, якщо з'явиться помилка, ви зможете повернутися до початкового варіанта.

Як створити.htaccess

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

Якщо ваш сервер або комп'ютер не дозволяє створити файл з таким ім'ям, створіть файл htaccess.txt, перенесіть його на сервер і на сервері перейменуйте його в .htaccess.

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

Для одиночної установки:

Для мультисайт установки, версія Вордпрес 3.5 або вище, якщо сайти знаходяться у підпапках:

Для мультисайт установки, версія Вордпрес 3.5 або вище, якщо сайти знаходяться на субдоменах:

Коли ви створюєте новий .htaccessфайл, дайте цьому файлу щонайменше 640 для захисту від можливих атак. Нормальні права для цього файлу – 600. Якщо файл вже є, перевірте, щоб права доступу були не вищими за 640.

Куди додавати зміни

Рядки, що починаються з тега #, є коментарями і не є правилами для виконання .htaccess.

Додайте свої коментарі до ваших правил.

Коли ви додаєте свої правила, додавайте їх вище або нижче за стандартні правила Вордпрес.

Не додавайте і нічого не редагуйте між рядками #BEGIN WordPress та #END WordPress. Для мультисайтів установок таких коментарів немає, але не додавайте і не редагуйте нічого в коді для мультисайтів установок.

Якщо ви щось виправили у цьому коді, Вордпрес повинен автоматично повернути початковий варіант, але краще нічого не міняти. У крайньому випадку, у вас має залишитися копія файлу, яку ви можете повернути на сервер.

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

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