Не створюється Використання файлу.htaccess. Правильне змінення сторінок помилок через.htaccess
Файл.htaccess– це спеціалізований службовий документ, який використовується для зміни налаштувань веб-сервера Apache та схожих серверів. Простіше кажучи, його використання допоможе вам змінювати роботу сайту: налаштовувати доступ до папок, файлів та інших матеріалів, вказувати правила перепису посилань та попередження про помилку. Разом з цим, ви не змінюєте функціонування всього сервера, настроюючи лише додаткові параметри у деяких користувачів.
Коли власник сайту працює над своїм проектом, обов'язково настане момент, коли йому доведеться використовувати файл.htaccess. Незважаючи на його величезну важливість, для багатьох вебмайстрів, особливо новачків, він залишається незвіданим, адже щоб розбиратися в ньому, потрібно добре знати не лише SEO, а й програмування.
У цій статті ми допоможемо вам зрозуміти, навіщо потрібний.htaccess і як його налаштувати. Це дуже важливо, тому що він відкриває гнучкі можливості для власників сайтів, які бажають забезпечити надійну безпеку для свого ресурсу.
У цьому файлі сайтобудівники можуть:
- Налаштовувати директиви простого перенаправлення (редиректи).Це дозволить після зміни домену надіслати відвідувача зі сторінки попереднього сайту на новий проект.
- Переадресовувати з URL, де є www, на домен без www. Або ж https після того, як встановіть ssl сертифікат.
- Описувати помилки.У тому числі й помилка 404 із заміною на необхідну сторінку.
- Кешування файлів.Робиться для прискорення роботи веб-ресурсу.
- Створювати ЧПК.Це «Людино-зрозумілі УРЛи», тобто формуються посилання, зрозумілі для інтернет-користувачів.
- Змінювати вихідний код сторінки.
- Керувати доступом до файлів та директорій за допомогою паролів.
- Встановлювати індексний файл.
- Відкривати та закривати доступ із певних IP-адрес.
- Керувати пошуковими роботами на сайті.
- Налаштовувати директиви складного спрямування.
Головне призначення.htaccess – налаштовувати сайт та каталоги відповідно до певних вимог. Тобто за допомогою цього файлу SEO-фахівці та програмісти можуть змінювати налаштування веб-сервера, навіть не маючи адміністраторських прав. Але зміни вносяться тільки для певного сайту, і на сервер вони ніяк не впливають.
Конфігурації сервера змінюються лише з використанням директив (команд), що включають «ключ» і «значення» для нього. Усі найважливіші директиви, що дозволяють керувати сервером, знаходяться в основному конфігураційному файлі, що називається httpd.conf. Проблема в тому, що рядовий користувач не має змоги отримати до нього доступ, тому що там знаходиться велика кількість параметрів, від яких залежить працездатність всього сервера. Ось чому актуальний.htaccess, що дозволяє змінювати деякі директиви у головному файлі.
Усі коригування у допоміжному файлі діють весь каталог, у якому він розташований. І якщо завантажити цей документ у кореневу папку сайту, то зміни торкнуться всього ресурсу.
Де знаходиться.
Можна легко перевірити, чи є у вас службовий файл. Від багатьох інших документів він відрізняється тим, що має лише розширення у вигляді назви зі слова, тоді як самої назви немає. Так, ми всі звикли бачити файли з назвою зі слова, та розширенням після точки, яка складається всього з 2-3 літер. Але порожні назви дозволяють робити файли та папки "прихованими", з відкритим вихідним кодом. З цього виходить, що .htaccess для звичайних користувачів залишається невидимим, тому вони не зможуть його змінити.
Але є цей метод «приховування» файлу і зворотний бік медалі. У стандартних FTP-клієнтах на ОС Windows і Mac документ дуже часто залишається невидимим для користувачів, через що вони помилково вважають, що його просто немає. Тому людина створює новий файл для внесення конфігурацій, кодів для обробки помилок, створення доступу до папок тощо. Добре, що більшість залишають місце на диску, де htaccess-файл вже встановлено автоматично.
Але якщо ви не знайдете його, спробуйте зайти в менеджер файлів, який вбудований у ваш хостинг. У ньому можуть відображатися приховані файли та директорії. Шукайте його в public_html, а потім за допомогою встановленого у програмі текстового редактора відкоригуйте та збережіть файл, після чого він завантажиться на сервер самостійно.
Якщо ви не знайдете документ вказаним шляхом, то створіть власний. Може статися, що на екрані з'явиться помилка. Отже, цей хостер заборонив створювати службовий файл.
Недорогі хостинги найчастіше забороняють клієнтам створювати та змінювати подібний документ. Таким чином вони стимулюють користуватися їхніми послугами за дорожчими тарифами, де це дозволено.
Як правильно створити.htaccess
Для цього вам знадобиться звичайнісінький текстовий редактор, наприклад, Блокнот, який є на будь-якому ПК:
- Відкрийте Блокнот, нічого в ньому не пишіть.
- Виберіть пункт "Файл"та натисніть "Зберегти як".
- З'явиться вікно, де навпроти пункту "Тип файлу"Виберіть « Alltypes»або "Всі файли".
- В рядку "Ім'я файлу"введіть . htaccesі клацніть на «Зберегти».
Далі перевірте, чи створено документ правильно. Обов'язково подивіться, чи не зберегли його як.htaccess.txt. Потім завантажте файл у кореневу папку сервера, і якщо не з'явиться помилка 500, значить, ви все зробили правильно.
Відтепер ви можете редагувати файл, що дозволить вам керувати веб-сайтом гнучкіше.
Приклади використання
Розглянемо найпопулярніші команди для .htaccess.
Редирект
Ці директиви використовуються із завидною регулярністю. Вони дозволяють перенаправити відвідувача зі старої URL-адреси на нову сторінку. Це можливо завдяки 301-редиректу. Достатньо в код файлу вписати:
Redirect 301 /старий_URL.html http://www.назва_вашого_сайту.ru/новий_URL.html
Загалом директива буде відображена у такому вигляді:
Redirect URL_LOCAL URL_REDIRECT
URL_LOCAL– це стара адреса, з якої здійснюється перенесення користувача.
URL_REDIRECT– нова URL-адреса, куди переноситься сторінка.
В полі [ status]можуть бути такі значення:
- 301 – сторінку перенесено назавжди.
- 302 – сторінку перенесено на якийсь час.
- 303 - Дивіться іншу сторінку.
- 410 - сторінка видалена.
Mod_rewrite (директиви складного перенесення)
Цей модуль міститься в Apache. У ньому є достаток різних директив для розширеного управління адресами. До основних із них належать:
1. Вказівка основного дзеркала
Призначений для того, щоб перетворити домен з www на URL без www. Достатньо запровадити правило:
RewriteEngine On # включає роботу RewriteCond %(HTTP_HOST) ^www.назва_вашого_сайту\ru$ #умови для початку перенаправлення RewriteRule ^(*)$ http://назва_вашого_сайту_/$1 #правило перетворення
2. Перенесення на https
На сьогоднішній день пошуковик Google активно закликає власників сайтів до використання безпечного з'єднання, для чого необхідно перенаправляти користувачів з http на https за допомогою коду:
RewriteEngine On RewriteCond %(HTTPS) !on RewriteRule (.*) https://%(HTTP_HOST)%(REQUEST_URL)
3. Проставлення сліша наприкінці адреси
Якщо ви не бажаєте, щоб URL сторінки закінчувався назвою каталогу http://назва_вашого_сайту.ru/catalog, введіть у файл код:
RewriteCond %(REQUEST_URI) /+[^\.]+$ RewriteRule ^(.+[^/])$ %(REQUEST_URI)/
Виконавши цю команду, надалі після адреси в автоматичному режимі додаватиметься: http://назва_вашого_сайту.ru/catalog/
4. Перенесення домену
Змінивши назву сайту, не забудьте в.htaccess вказати:
RewriteEngine on RewriteCond %(HTTP_HOST) ^www\.yoursite.ru\.ru$ RewriteRule ^(.*)$ http://www.your-site.ru/$1
Оптимізуючи сайт і під Яндекс, і під Google, зміна доменного імені може загрожувати неприємними наслідками. Інструкції в robots.txt, призначені для Яндекса, перекриваються 301-редиректом. Але цього можна не допустити, додавши до коду правило:
RewriteEngine on RewriteCond %(REQUEST_FILENAME) robots.txt$ RewriteRule ^([^/]+) $1 [L] RewriteCond %(HTTP_HOST) ^mysite\.ru RewriteRule ^(.*)$ http://www.my-site .ru/$1
5. Заборонені команди для пошукового робота
В.htaccess, так само, як і в robots.txt, можна закрити доступ до сайту для пошукових систем:
RewriteEngine on RewriteCond %(USER_AGENT) Googlebot RewriteRule .* - [F] # F – видає помилку 403 – заборонено для сканування
Обробка помилок
Практично будь-який інтернет-користувач зустрічався з помилкою 404 not found (сторінку не знайдено або видалено). Але є безліч інших помилок, про які ви напевно не чули.
У службовому файлі можна прописати файл для його відображення під час помилки. Але попередньо необхідно створити той же файл у html розширенні, і прописати в ньому, у чому полягає ця помилка. Потім, в залежності від помилки, внесіть в кодування.htaccess:
ErrorDocument 404 /siteerror404.html
Індексні документи
Коли відвідувач заходить на сайт, одразу відкривається індексний файл index.xml. Ви можете замінити індексну сторінку на будь-яку іншу, доповнивши код:
DirectoryIndex name.xml
Або додати кілька таких сторінок, і пошуковик буде знаходити їх у відповідній послідовності:
DirectoryIndex index.html index.php index.pl
Вказівка кодування
Ця функція потрібна, щоб текст відображався на екрані користувача правильно. Інакше замість нормальної читабельної сторінки він бачитиме незрозумілі символи. Сьогодні широко поширене кодування: Windows-1251 – Кирилиця таUTF-8 – двобайтове кодування. Для вибору кодування у службовому документі застосовується директива:
AddDefaultCharset WINDOWS-1251
А щоб надалі, коли ви завантажуватимете файли на сервер, не виникало проблем, вкажіть, що всі нові файли будуть перетворюватися на аналогічне кодування:
CharsetSourceEnc WINDOWS-1251
Вказівка паролів для директорій
Для цього в каталозі, що закривається, пропишіть:
AuthName "Need password" #повідомлення для запиту пароля AuthType Basic #тип автентифікації AuthUserFile /passwords/.psd #ім'я файлу, що містить паролі для входу Require valid-user #ім'я користувачів, яким відкритий доступ
Доступ до файлів та директорій
За допомогою файлу.htaccess можна заборонити повністю або частково доступ до певних файлів. Допустимо, ви хочете закрити доступ до системного каталогу. Тоді у відповідному.htaccess пропишіть:
Deny from all
Для заборони перегляду певного файлу, наприклад test.php:
Відкрити перегляд для конкретного IP, і при цьому закрити доступ іншим, дозволяє команда:
Висновок
Як бачите, службовий файл.htacces є одним із найважливіших інструментів для повноцінної працездатності веб-ресурсу. І ознайомившись з його можливостями, ви, напевно, здивувалися, чому раніше знали про цей файл мало. Це ефективний інструмент для того, щоб SEO-фахівці та програмісти могли вносити зміни до конфігурації веб-сервера для певних сайтів, не впливаючи на сервер.
Ми вирішили об'єднати дві теми, "як зробити файл htaccess" і що таке "htaccess", де він розташовується, навіщо потрібні загальні поняття!
Хоча тема htaccess – це не початковий рівень вивчення, але ми потихеньку починаємо заглиблюватись і htaccess – це невід'ємна частина сайту!
Що таке htaccess
На вашому сайті (сервері) є головний файл конфігурації, все, що так чи інакше виконується на вашому сайті залежить від цього файлу, а ось файл htaccess - це можна порівняти з додатковими налаштуваннями системи... Іноді до головного конфігураційного файлу доступу немає і його неможливо змінити, якщо ви не маєте відповідного доступу. В цьому випадку – можна його змінити, лише звернувшись у технічну підтримку!
Визначення що таке htaccess
.htaccess (/"eɪtʃtiːæk.sɛs/ від англ. hypertext access) - файл додаткової конфігурації веб-сервера Apache, а також подібних до нього серверів. Дозволяє задавати велику кількість додаткових параметрів і дозволів для роботи веб-сервера в окремих каталогах (папках), таких як керований доступ до каталогів, перепризначення типів файлів тощо без зміни головного конфігураційного файлу.Де знаходиться файл htaccess
Ви можете розташовувати цей файл, як в , і цей файл поширюватиме свій вплив на весь сайт, але якщо ви хочете. скасувати дію файлу htaccess в якійсь папці, то просто створюємо новий файл htaccess і вставляємо його в ту папку, в якій хочемо змінити правила.Найпростіший приклад використання htaccess
Показати найпростіший приклад використання файлу htaccess – щоб далеко не ходити, використовуємо дві версії нашого сайту – 1. нова головна та нова версія всього сайту та 2. стара головна та старі сторінки.Для обох версій виконуються правила
1. AddHandler fcgid-script .php .html .htm
Цей рядок - SSI (Server Side Includes - включення на стороні сервера) - що дозволяє включити в сторінку інформацію, недоступну засобами HTML, таку як виведення програм наприклад PHP.
А на російській!?
Усі файли, які ви відкриваєте на нашому сайті, мають розширення ".html" - це не віртуальне розширення, а фізичне, тобто. ця інформація зберігається у реальних файлах! Але якщо ви помістите будь-який код php в цей файл, то він виведеться у вигляді простого тексту і не виконається! Для зміни цього і потрібен цей рядок... Якось і про це ми напишемо, коли дійдемо...
2. Можливо верхній приклад досить складний розуміння, чи є варіант простіше!?
Знову звернемося до нашого сайту. Якщо ви звернете увагу, що всі нові сторінки мають спільну папку "page" і всі файли, і як дивно це не звучало, але такої папки - фізично не існує.
Як у кіно – бачиш ложку!? Ні!? – А вона існує!
RewriteRule ^page(.*) index.html [L]
Як зробити файл htaccess
Найпростіше, як можна створити файл htaccess - це заходимо в ту папку. В якій нам потрібно, щоб був файл htaccess – натискаємо ПКМ – створити – текстовий документ.Ось на нижньому скрині ми бачимо, що наш новий текстовий документ створено. Тепер нам потрібно перейменувати його в.htaccess. Крапка перед словом htaccess – це не помилка – він так і виглядає!
Хм… тільки я хотів його перейменувати, а він мені видає:
Так… у windows 7 це проходило без проблем…
Ну що ж, ми підемо іншим шляхом!
Варіант №2.
Відкриваємо створений файл у блокноті або просто відкриваємо текстовий блокнот і в ньому вказуємо збереження нашого файлу htaccess в потрібну директорію.
Ім'я файлу - .htaccess
Тип файлу – усі файли.
Все – наш файл.htaccess – створено.
Де є файл htaccess?
Він може бути будь-де в залежності від необхідності, але якщо вам потрібно, щоб файл відповідав за всі налаштування сайту, то він повинен знаходиться в тій же директорії, що і файл index.html, ну або index.php.
Htaccess - це файл, який відноситься до налаштування сервера Apache. У ньому можна задати різні налаштування для зручнішого настроювання помилок та інших речей для сайту. Зазвичай файл.htaccess лежить у кореневому каталозі і діє на весь сайт, на всі підкаталоги, якщо ж тільки в іншому каталозі не лежить свій.htacces, тоді він буде діяти на свій каталог і на свої підкаталоги, якщо ж звичайно останні не містять свого.htaccess файлу.
Зазвичай файл.htaccess використовується для обмеження доступу до певних файлів або каталогів.
Чи підтримує ваш хостер.htaccess?
Це, напевно, найскладніше питання, на яке одразу не відповиш! Іноді хостери підтримують.htaccess, тільки своїм користувачам забороняють користуватися цим сервісом. Якщо ж ви на фтп помітили що там є файл.htaccess, тоді не поспішайте його замінювати, і краще зверніться в support (службу підтримки). За звичаєм, якщо на сервері встановлений Unix або Linux, сервер підтримує.htaccess. Я знаю три сайти, які підтримують.htaccess, це:
Як створити файл.htaccess?
Дуже просто. Заходимо в Блокнот (Notepad), пишемо текст, який буде нижче і потім натиснемо на "Зберегти Як" ("Save As)", вибираємо тип файлу "Всі Файли" *.* ("All Files" *.*) і в полі " Ім'я файлу" пишемо.htaccess . Якщо ж ви не можете зробити це, то не засмучуйтесь і збережіть його просто як .htaccess.txt файл, а коли завантажуєте на фтп, використовуючи свій ФТП клієнт, змініть ім'я на .htaccess.
УВАГА: Перед використанням .htaccess я попереджаю вас: навіть якщо використовуючи .htaccess на вашому сервері надзвичайно небажано, т.к. можуть виникнути деякі проблеми (якщо щось неправильно, то він просто не працюватиме), Ви повинні насторожено ставитися до Microsoft FrontPage Extensions. Microsoft FrontPage Extensions використовує .htaccess, так що не раджу вам повністю змінювати його (файл.htaccess) або додавати самому інформацію і замінювати свій.htaccess на.htaccess сервера. Якщо вас дуже закортіло, то пораджу вам спочатку скопіювати файл.htaccess з сервера і вже потім його там змінювати, а то хто знає що ви там зробите з вашими "кривими" ручками:-).
Звичайні сторінки помилок
Насамперед, я розповім вам про те, що можна змінити сторінку помилок. Тобто. сторінки, які видаються при помилці (наприклад, 404 Файл не знайдено) можна налаштувати під дизайн. Я думаю у кожного веб-дизайнера в очах спалахнула думка, про те, що можна під свій дизайн, на своєму тлі з присутністю вашого меню і лого, написати 404 великими червоними літерами, щоб кожен побачив це. Ну ось і приступимо. Система така: ErrorDocument номер помилки /file.html Припустимо ми хочемо змінити 404 помилку, тоді пишемо наступне: ErrorDocument 404 /notfound.html де notfound.html - файл, який лежить в кореневому каталозі і змінений нами! Якщо ж файли з помилками лежать у папці /errorpages, то пишемо у файлі.htaccess ErrorDocument 404 /errorpages/404.html.
Ось список найчастіших помилок:
401 - Authorization Required
400 - Bad request
403 - Forbidden
500 - Internal Server Error
404 - Wrong page або File Not Found
Створюємо файли з усіма цими помилками, і пишемо це файл.htaccess.
У наступній частині я розповім про інші функції файлу.htaccess, щоб покращити свій сайт.
Під час створення сайтів часто потрібно створювати файл.htaccess. Коли я тільки-но почав займатися з сайтобудуванням, то зіткнувся з деякими проблемами, які ускладнювали мені зробити htaccess. Про них я розповім, і про те, як все-таки створити цей файл.
Проблема
Взагалі, .htaccess – це файл додаткової конфігурації Apache. Його особливістю є те, що цей файл має лише розширення, без імені. Це й спричиняє деякі труднощі.
1. Ви хочете створити у себе на комп'ютері під Windows файл htaccess. Конфігурація файлів не показує їхнього розширення. Ви створюєте текстовий файл і називаєте його .htaccess. Вносите туди всю необхідну інформацію, але виявляється, що це не працює. Насправді ви просто створили текстовий файл, а не потрібний.
2. Перший випадок, але тільки у вас з'являються розширення файлів і ви змінюєте "Новий текстовий документ.txt" на ".htaccess". З'являється така помилка.
Як же створити цей файл?
Рішення
1. Ви можете просто завантажити готовий htaccess. Наприклад, для CMS wordpess можна завантажити за посиланням . Якщо у вас система керування контентом інша, можете просто видалити весь вміст файлу і налаштувати під себе. Можна також завантажити порожній htaccess.
134байт Кількість завантажень: 266
2. Створити htaccess можна в файловому менеджеріВи використовуєте для зв'язку з хостингом (сервером), наприклад, WinSCP. New -> File
Для редагування раджу використовувати текстовий редактор. Якщо ви знаєте ще способи, можете доповнити тему .
За підтримки.
andew
2015-02-19T11:30:28+00:00
2017-02-16T05:30:00+00:00
12697
Файл .htaccessє за своїм призначенням файлом конфігураційного рівня каталогу (директорії) для web сервера Apache. Це означає, що директиви з цього файлу виконуються Apache локально лише при зверненні до директорії, що містить файл. Область дії цих директив поширюється лише на каталог, в якому розташований файл, і на вкладені каталоги, доки вони не будуть перевизначені в інших файлах.htaccess з вкладених каталогів. Файл.htaccess перечитується при кожному зверненні до веб-сервера, так що зміни, внесені до цього файлу, набувають чинності негайно.
Таким чином, apache надає нам зручний інструмент конфігурації на рівні директорій сайту. Це розширює наші можливості, оскільки не всі налаштування зручно робити на глобальному рівні та на рівні віртуального хоста. Також на хостингах, власник сайту, як правило, не має можливості виконувати налаштування apache на глобальному рівні та на рівні віртуального хоста, але у нього може бути можливість задати необхідні налаштування на рівні каталогів сайту. Для того щоб apache приймав і виконував директиви з файлів.htaccess каталогів сайту потрібно, щоб на глобальному рівні або на рівні віртуального хоста apache це було дозволено для сайту.
Робиться цей дозвіл за допомогою наступного блоку коду:
Тут у тезі
Тепер кілька слів про назву файлу.htaccess. Цей файл може називатися і інакше, і це також встановлюється в глобальному конфізі apache директивою AccessFileName. За промовчанням ця директива встановлена в конфізі як AccessFileName .htaccess, і це значення зазвичай ніхто не змінює, але ви повинні знати, що змінити його на інше можливо.
Синтаксис файлів.htaccess у випадку аналогічний синтаксису головного файлу конфігурації apache. Однак адміністратор може обмежувати доступ користувачів до тих чи інших директив. Тобто, незважаючи на те, що команда, в принципі, може виконуватися з .htaccess, адміністратор може заборонити доступ до конкретної директиви. Враховуйте це під час роботи. Також хочу помітити такий момент, коли ви пишите директиви, що працюють з каталогами? то в основних конфігураційних файлах apache їх необхідно обертати в тег
Для чого ми можемо використовувати файл.htaccess. Варіантів тут чимало, ось найпоширеніші з них:
1.Для управління дозволами на доступи до каталогів сайту (запаролити директорію, заборонити доступ до файлів певного формату, або доступ до сайту в певний проміжок часу, заборонити або відкрити доступ з певних IP адрес, керувати роботами пошукових систем)
2.Для перезапису поточного URL на новий залежно від умов ()
3.Для явної вказівки кодування сайту.
4.Для дозволу чи заборони перегляду файлів сайту
5.Для захисту від хотлінку
6.Для виконання ридирктів
7.Для завдання своїх сторінок помилок
8.Для перевизначення індексного файлу
9…. і багато іншого.
Давайте для прикладу напишемо якийсь узагальнений файл.htaccess.
До нього ми зберемо найпоширеніші випадки використання директив та додамо до них коментарі. І з цього шаблону шляхом видалення не потрібно ви зможете завжди підготувати конкретний.htaccess для ваших завдань. Тут символ #
- це символ коментаря, що застосовується в конфігах apache.
# .htaccess початок шаблону # Встановлення часової зони SetEnv TZ Europe/Moscow # Встановимо примусово кодування сторінок сайту AddDefaultCharset UTF-8 # Задамо index файл який буде # віддаватися якщо запитаний не знайдений Directoryindex index.php index.html # Заборонимо користувачам переглядати файли -Indexes # Дозволимо слідувати за символічними зв'язками в цьому каталозі Options +FollowSymLinks # Дозвіл доступу тільки для вказаних IP Order Deny,Allow Deny з усіх можливих x.x.x.x # Або заборона доступу по IP Order allow,deny deny from x.x.x.x deny from x.x. # Заборонити всім, то тільки # один цей рядок вказати Deny from all # Закрити доступ до вкладеної директорії щодо поточного файлу # можна так, або поклавши туди окремий.htaccess файл
Розшифрую деякі прапориз директив:
- RewriteCond ... - NC означає регістр нечутливе порівняння виконувати
- RewriteCond ... - NC див. вище, OR - означає об'єднувати RewriteCond через OR, за замовчуванням якщо нічого не вказано, то RewriteCond об'єднуються через AND оператор.
- RewriteRule ... [L]- L означає закінчити (зупинити обробку) на цьому RewriteRule правилі будь-які подальші перетворення URL, тобто. наступні RewriteRule не виконувати.
- RewriteRule ... - L див. вище, R=302 означає виконати редирект з кодом 302 на перетворений URL
- RewriteRule ... - L і R див вище, QSA - при перетворенні URL виконувати при стикування заданих частин, а не заміну.
- RewriteRule ... [F]- F, значить відмовити у видачі результату з цього URLкодом 403 Forbidden.
- RewriteRule. - G|Gone - [G] flag означає віддати код 410 Gone status- рекомендація забути цей URL
AuthUserFile - Вказує шлях до файлу з паролями для http авторизації користувача. Шлях може бути абсолютний від кореня файлової системи Linux-сервера або відносний від ServerRoot apache. У Ubuntu ServerRoot "/etc/apache2" за промовчанням. При заданні відносного шляху від ServerRoot apache початковий слєш у дорозі не вказується, інакше шлях сприйматиметься як абсолютний від кореня Linux. Також, якщо шлях містить неприпустимі символи і прогалини його потрібно укладати в лапки, це загальне правило.
Order, Deny, Allow
Тепер ще раз, але вже детальніше, хотілося б повернутися до директив управління доступом: Order, Deny, Allowі детальніше описати її синтаксис та логіку.
Директиви Allow , Deny , Orderмодуля mod_access_compat небажанідо використання і вважаються застарілими, хоч і підтримуються ще у версіях Apache 2.3 і 2.4 . У наступних версіях їх буде видалено. Замість них, починаючи з версії Apache 2.3, цей функціонал реалізується директивою Require, яка дозволяє гнучкіше налаштовувати доступи, ніж застарілі директиви. Деталі дивіться у статті, яка докладно описує директиви Require, Allow, Deny, Orderіз прикладами їх використання.
Директива Order синтаксис: Order або
За замовчуваннямдиректива Order має порядок: Deny,Allow. Зверніть увагу, що Deny,Allowпишуться без пропуску.
Залежно від того, в якому порядку вказані директиви Deny,Allowабо Allow,Denyзмінюється логіка роботи.
Якщо Deny,Allowто забороняється доступ з усіх IP крім зазначених, якщо Allow,Denyдозволяється доступ з усіх ІР крім оговорених. Далі йдуть секції опису для доступу та заборони. Ключове слово allозначає з усіх IP.
Наприклад, щоб заборонити (блокувати) доступ з IP x.x.x.x і x.x.x.xx і дозволити доступ всім іншим необхідно додати в.htaccess наступний код:
#Дозволити ВСІМ крім зазначених IP
Order Allow,Deny
Allow from all
Deny from x.x.x.x x.x.x.xx
Зверніть увагу, що IP записані через пробіл. Можна також вказати IP як IP/маска.
Для зворотної ситуації, що б заборонитидоступ з усіх IP крім x.x.x.x та x.x.x.xx нам необхідно додати в.htaccess наступний код:
# Заборонити ВСІМ крім зазначених IP
Order Deny,Allow
Deny from all
Allow from x.x.x.x x.x.x.xx
Заборону або дозвіл можна вказувати і на окремий файл або групи файлів. Наприклад, щоб заборонити доступ всіх окрім IP x.x.x.x до файлу passwd.html, який розташований у поточній директорії.
# Заборонити файл passwd.html ВСІМ крім зазначених IP
Order Deny,Allow
Deny from all
Allow from x.x.x.x
Аналогічно можна заборонити або дозволити доступ до певної групи файлів, описавши їх через регулярне вираження. Наприклад, файли з розширенням ".key":
#Заборонити файли *.key ВСІМ крім зазначених IP
Order Deny,Allow
Deny from all
Allow from x.x.x.x
Шаблон вийшов великий, але на практиці потрібно прагнути використовувати тільки справді украй необхідні директиви. Особливо обережно потрібно надходити із зовнішніми редиректами, оскільки вони призводять до загального збільшення часу обробки запиту. Тому робіть їх тільки якщо вони справді необхідні. Ще хочеться застерегти Вас від прямого копіпаста директив із наведеного мною шаблону до ваших реальних конфіг. Код наведений тут використовуйте тільки для прикладу, щоб отримати уявлення, що взагалі можливо і як це виглядатиме. У свої файли вставляєте тільки ті директиви, синтаксис яких ви розумієте, можете розшифрувати і які ви перевірили за офіційним керівництвом apache. Помилки виконання директив з файлу .htaccessдивіться у логах apache.