Все про .htaccess файл. Частина 1
19, Січ, 2013
Htaccess (HyperText Access) є файлом, який допомагає розробникам та дизайнерам змінювати конфігурації сервера Apache.
Особливістю є те, що .htaccess фал не має розширення! Використовується для “допилювання” функціоналу на сайті, перенаправлення користувачів, зміна URL адреси та багато іншого.
1) Створення файла .htaccess
Як уже зазначалось вище, файл .htaccess створюється без розширення і щоб створити такий файл, достатньо відкрити любий текстовий редактор (Блокнот, Notepad++ …) і зберегти його. В Notepad++ можна зберігати файли без розширень, це саме те, що нам потрібно Що стосується блокнота, то збережіть в .txt форматі, а на сервері зітріть розширення .txt.
Кінцевий вигляд файлу: “.htaccess”. Без розширень і розпочинається з крапки, це важливо!
2) Встановлення .htaccess
Файл .htaccess влаштований так, що він впливає тільки на той каталог в якому він з находиться, включно із підкаталогами.
Для прикладу, якщо у вас CMS WordPress, файл .htaccess додаєте в самий корінь сайта, де знаходяться системні файли WordPress (папки: “wp-admin” “wp-content”… файли: “wp-config.php” “wp-login.php”…) Тут, сподіваюсь, все зрозуміло :)
3) Використання .htaccess
Перш ніж почати використовувати файл .htaccess, варто згадати про коментарі в файлі. Коментарем вважається все, що стоїть після символа # у рядку. Зразок:
1 2 |
# перший коментар # другий |
– 3.1) Directory Index
За замовчуванням відкривається файл index.php. Ви можете це змінити, додавши у .htaccess файл наступні рядки:
1 |
DirectoryIndex welcome.html welcome.php |
– 3.2) Сторінки помилок
Якщо є потреба перенаправити користувачів на власну сторінку із помилкою, якщо така виникає, тоді записуємо наступне:
1 |
ErrorDocument 404 error.html |
Це запис для 404 помилки, який направляє користувача на файл error.html.
Для кожної помилки можна зробити своє правило, зразок:
1 2 3 4 5 |
ErrorDocument 400 /error-400.html ErrorDocument 401 /error-401.html ErrorDocument 403 /error-403.html ErrorDocument 404 /error-404.html ErrorDocument 500 /error-500.html |
– 3.3) Видаляємо WWW із адреса сайта
Додаємо наступне:
1 2 3 4 |
RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^www.yourdomain.com [NC] RewriteRule ^(.*)$ http://yourdomain.com/$1 [L,R=301] |
Не забуваємо замінити домен вказаний у зразку, на ваш власний.
– 3.4) Встановлення часового пояса
1 |
SetEnv TZ Europe/Kiev |
Як бачимо, вказано, що наш часовий пояс Європа/Київ
– 3.5) Керування доступом до файлів
Файл .htaccess часто використовується для заборони доступа до файла. Це можна зробити простою забороною, або ж встановити пароль. Давайте розглянемо ці два варіанта.
– – 3.5.1) Проста заборона доступа
Для того щоб заборонити доступ до всього вмісту, потрібно додати:
1 2 |
Order Deny,Allow Deny from all |
Заборона доступа для визначеного IP:
1 2 3 4 |
order allow,deny deny from XXX.XXX.XXX.XXX allow from all # XXX.XXX.XXX.XXX замінюємо на потрібний вам IP. |
Заборона доступа для кількох IP:
1 2 3 |
allow from all deny from XXX.XXX.XXX.XXX deny from XXX.XXX.XXX.XXX |
Заборона доступа для окремого файла:
1 2 3 4 5 |
<Files ".htpasswd"> Order Deny,Allow Deny from all </Files> # забороняється доступ до .htpasswd файла, всім користувачам |
Заборона доступа до групи файлів із різними розширеннями:
1 2 3 4 5 |
<FilesMatch "\.(lib|pm)$"> Order Deny,Allow Deny from all </FilesMatch> # забороняється доступ до файлів із розширенням "lib" і "pm", всім користувачам |
– – 3.5.2) Встановлення пароля
Для одного файла (file.rar):
1 2 3 4 5 6 7 8 |
<Files file.rar> AuthName "Users zone" AuthType Basic AuthUserFile /pub/home/login/.htpasswd require valid-user </Files> # Cтрічка AuthUserFile вказує шлях до файла із паролем. # Такий файл створюється за допомогою спеціальної утиліти htpasswd.exe. |
По розширенням(sql,rar):
1 2 3 4 5 |
<Files "\.(sql|rar)$"> AuthName "Users zone" AuthType Basic AuthUserFile /pub/home/login/.htpasswd </Files> |
– 3.6) Перенаправлення (301 Redirects)
Власне, із назви все зрозуміло :)
1 |
Redirect 301 http://wpfan.com.ua |
Перенаправлення в залежності від каталога, або файла:
1 2 3 4 5 |
redirect /scripts http://wpfan.com.ua/ redirect /_vti_bin http://wpfan.com.ua/ redirect /MSADC http://wpfan.com.ua/ RedirectMatch (.*)\cmd.exe$ http://www.microsoft.com # Перенаправлення на wpfan.com.ua при запиті каталога "scripts"... |
В залежності від реффера (сторінки, що посилається):
1 2 3 |
RewriteCond %{HTTP_REFERER} http://www.xakers.ru RewriteRule ^/hack.html$ /off.html [L] # Відвідувачі із xakers.ru попадають не на головну сторінку, а на off.html |
– 3.7) Встановлення електронної адреси адміністратора сервера
Встановлення E-mail’а адміністратора сервера, за замовчуванням:
1 2 |
ServerSignature EMail SetEnv SERVER_ADMIN master@domain.com |
– 3.8) Перенаправлення по типу пристрою
Якщо вам потрібно перенаправити, наприклад, користувачів планшетів на окремі сторінку, ви можете використати наступний код:
1 2 3 4 5 6 |
RewriteCond %{HTTP_USER_AGENT} ^.*iPad.*$ RewriteRule ^(.*)$ http://wpfan.com.ua/category/uroky-wp/ [R=301] RewriteCond %{HTTP_USER_AGENT} ^.*Android.*$ RewriteRule ^(.*)$ http://wpfan.com.ua/ [R=301] # Користувачі iPad перенаправляються на уроки по WordPress # Android користувачі відправляються на головну сторінку |
– 3.9) Захист від хотлінкінга
Якщо ви не бажаєте, щоб ваші картинки використовувались на інших сайтах, чи просто хочете зменшити трафік. Поекспериментуйте із наступним кодом:
1 2 3 4 5 |
Options +FollowSymlinks RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www.)?domainname.com/ [nc] RewriteRule .*.(gif|jpg|png)$ http://domainname.com/img/hotlink_f_o.png [nc] |
На цьому я закінчую першу частини статті про .htaccess файл. Надіюсь, вона була корисна для вас. В наступній частині, я опишу, все те що залишилось і невеличке завершальне слово.
Отож, читаємо другу частину статті і залишаємо свої коментарі.
Взято за основу: sitepoint.com
2