.htaccess (hypertext access) – це конфігураційний файл, який використовується серверами веб-додатків, що працюють на Apache. Цей файл надає можливість налаштовувати серверне поведінку для певних директорій або навіть окремих файлів, керувати доступом до сайту, перенаправляти запити, встановлювати заголовки HTTP та багато іншого. Розуміння .htaccess
і його використання є важливими для веб-розробників та адміністраторів серверів, оскільки це дозволяє ефективно керувати поведінкою веб-додатків і забезпечувати безпеку та зручність використання для користувачів.
.htaccess розшифровується як “hypertext access”, що означає доступ до файлів і ресурсів веб-сервера через протокол HTTP. Цей файл зазвичай налаштовується у текстовому форматі і містить інструкції, які вказують серверу, як обробляти запити, направляти користувача на певні сторінки, змінювати параметри запитів та багато іншого.
Ось кілька ключових областей застосування .htaccess
:
1. Керування доступом:
.htaccess дозволяє обмежувати доступ до певних частин сайту за допомогою різних методів аутентифікації, таких як базова аутентифікація за допомогою пароля, а також через IP-адреси або домени.
2. Перенаправлення URL:
Цей файл часто використовується для налаштування перенаправлень URL. Наприклад, можна вказати, щоб всі запити до певної сторінки перенаправлялися на іншу сторінку, або налаштувати постійні (301) або тимчасові (302) перенаправлення.
3. Керування кешуванням та заголовками:
За допомогою .htaccess можна керувати кешуванням ресурсів на стороні клієнта, встановлювати заголовки HTTP, такі як Content-Type, Cache-Control та інші, що дозволяє оптимізувати продуктивність сайту та керувати кешуванням контенту.
4. Оптимізація URL:
.htaccess дозволяє перетворювати динамічні URL в більш зручні та зрозумілі форми, що покращує SEO та загальне сприйняття користувачем URL-адрес.
5. Захист від атак:
Цей файл може використовуватися для захисту від різних типів атак, таких як атаки на основі ін’єкцій, перебору паролів, сканування директорій та інших загроз безпеці.
Важливо пам’ятати, що хоча .htaccess є потужним інструментом, неправильне використання його може призвести до небажаних наслідків, таких як порушення роботи сайту або вразливості безпеки. Тому необхідно ретельно перевіряти і тестувати зміни, що вносяться в цей файл, перед їх застосуванням на продакшн-сервері.
За роки роботи з SEO спеціалістами в мене сформувався список сніпетів для типових перенаправлень. Ось список:
Перенаправлення всіх сторінок на новий сайт, стає в нагоді, коли ви робете переїзд з домену на домен:
Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^website1\.com RewriteRule ^(.*)$ https://website2.com/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^www.website1\.com RewriteRule ^(.*)$ https://website2.com/$1 [R=301,L]
Перенаправлення сторінок на новий сайт, з виключеннями, стає в нагоді, коли ви робете переїзд з домену на домен, проте хочете зберегти доступними деякі сторінки на старому домені:
Options +FollowSymLinks RewriteEngine on RewriteCond %{REQUEST_URI} !^/robots.txt$ RewriteCond %{REQUEST_URI} !^/sitemap.xml$ RewriteCond %{HTTP_HOST} ^website1\.com RewriteRule ^(.*)$ https://website2.com/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^www.website1\.com RewriteRule ^(.*)$ https://website2.com/$1 [R=301,L]
Щоб була доступна лише версія з www, я використовую наступний сніпет:
RewriteEngine on RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
І навпаки, щоб була доступна лише non-www версія
RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
Встановити лише https версію сайту:
RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Сподіваюсь, ця стаття стане вам у нагоді!