Корисні поради по налаштуванню файлу .htaccess


Корисні поради по налаштуванню файлу .htaccess

Якщо ви хоча б якийсь час працювали в якості веб-дизайнера, то напевно стикалися з містичним файлом під назвою «.htacess». Деякі задаються питанням, що ж таке ht, і чому нам потрібен доступ до нього (примітка: «access» в перекладі означає «доступ»). Будь ви новачками або професіоналами, важливо знати, що розуміння файлу htaccess допоможе вам підвищити продуктивність веб-сайту, убезпечити цього і багато іншого.Назва файлу htaccess розшифровується як «hypertext access» (доступ до гіпертексту), і він являє собою файл конфігурації, розташований в кореневому каталозі вашого веб-сайту, і дозволяє виставляти налаштування сервера. У wordpress одна з ключових завдань даного файлу полягає в тому, щоб допомогти сервера легше розпізнати і запустити CMS. Але давайте дізнаємось, чому ж ще нам може допомогти цей невеличкий клаптик коду. Новачок ви чи професіонал, ЗАВЖДИ створюйте резервну копію файлу, перед тим як його правити.01. Заборона на перегляд директорійХоча іноді буває дуже зручно дозволити користувачам переглядати директорії, залишати їх відкритими для всіх веде за собою певні ризики і наслідки. Заборонити перегляд директорій можна дуже просто, додавши рядок коду в файл htaccess десь між “# BEGIN WordPress” і “# END”:

Options All -Indexes02. Запобігання хотлінкінгаТекстові пірати, які копіюють контент вашого веб-сайту досить погані особистості через декілька причин, але ті, хто крадуть зображення, також вам не друзі, хоча вони по суті і не крадуть їх, а просто посилаються на них чи публікують на своїх сайтах, використовуючи ресурси вашого хостингу. Знову ж таки, з точки зору безпеки, і для того, щоб запобігти витрата пропускних можливостей вашого хостингу, краще заборонити використовувати ваші зображення. Це можна зробити, додавши в файл htaccess наступний код (замінивши “mywebsite.com” на ваш власний домен).

RewriteBase /
RewriteCond% {HTTP_REFERER}! ^ $
RewriteCond% {HTTP_REFERER}! ^ Http: // (www.)? Mysite.com /.*$ [NC]
RewriteRule. (Gif | jpg | swf | flv | png) $ / feed / [R = 302, L]
03. Відображення власної сторінки в разі помилкиІснує безліч причин до того, чому Ви бажаєте бачити власні сторінки на випадок помилки. Хоча багато шаблони WP дозволяють вам без праці встановлювати власні сторінки з помилкою, ви також швидко можете зробити це самостійно, додавши наступний код в файл htaccess:

ErrorDocument 404 /404.html
ErrorDocument 403 /403.html
ErrorDocument 500 /500.html
Звичайно ж, вам також доведеться створити і завантажити власну сторінку.04. SEO-оптимізоване перенаправлення 301 (редирект)Кожен раз, коли ви змінюєте URL-структуру вашого веб-сайту (під час оновлення дизайну або при переїзді на інший сервер), вам швидше за все знадобиться подбати про перенаправлення. Просто додайте наступний код зі старими адресами сторінок, за якими слідують нові. Це дозволить вам зберегти рейтинги сторінок.

Redirect 301 http://www.mysite.com/article.html http://www.mysite.com/archives/article05. Блокування небажаних гостей з посилаються доменівХоча рідко вебмастери хотіли б блокувати власний приходить трафік, бувають випадки коли це необхідно. Наступний код, для якого створено файл htaccess, дозволить вам блокувати трафік з конкретних доменів.

RewriteEngineon
RewriteCond% {HTTP_REFERER} wearespammers.com [NC]
RewriteCond% {HTTP_REFERER} subdomain.wearespammers.com [NC]
RewriteCond% {HTTP_REFERER} baddomain. [NC]
RewriteRule. * - [F]
Перший рядок код перевіряє, чи не прийшов трафік з сайту на кшталт wearespammers.com, а друга перевіряє субдомени, а третя визначає доменну зону (.org, .net. І т.д.).06. Блокування відвідувачів з певних IP-адресВи також можете заблокувати певні IP-адреси. Наступний код, наприклад, блокує трафік з 145.177.12.119 і субдомени блокованого IP 012.43.4.

allow from all
deny from 145.177.12.119
deny from 012.43.4.
07. Дозволяє виставити доступ тільки конкретним IP-адресамиВикористовуючи наступний код, ви можете дозволити відвідувати веб-сайт тільки з конкретних IP-адрес.

orderdeny, allow
deny from all
allow from 123.456.789.012
allow from 496.742.011
Даний код забороняє доступ всім відвідувачам, за винятком IP-адреси 123.456.789.012, або діапазону 496.742.011.xxx.08. Зміна вихідної сторінки директоріїХочете завантажувати сторінку відмінну від index.php або index.html при першому завантаженні сайту? Тоді вам потрібно додати наступний рядок в ваш htaccess-файл.

Directory Indexnewpage.html09. Визначення меж завантаження для PHPЯкщо ви коли-небудь стикалися з проблемою завантаження великих файлів на ваш сервер, то для її вирішення можна також скористатися файлом htaccess. Перше значення в представленому коді відповідає за максимальний розмір файлу, який ви можете завантажити на сервер, друга сторінка відповідає за максимальний обсяг опублікованих даних, а третя за максимальну кількість секунд, протягом яких може тривати робота скрипта, після чого він буде заборонений. І останній рядок відповідає за час, протягом якого скрипт може парсити введені дані.

php_value upload_max_filesize 30M
php_value post_max_size 30M
php_value max_execution_time 400
php_value max_input_time 400
10. Примусове кешування файлівВи можете прискорити роботу вашого веб-сайту для тих користувачів, хто вже відвідував ваш сайт раніше, якщо контент ваших сторінок не змінювався з тих пір. Наступний код виставляє три різних проміжку часу для різних типів файлів (весь час вказано в секундах).

# 1 year
<filesMatch ". (ico | pdf | flv | jpg | jpeg | png | gif | js | css | swf) $">
Header set Cache-Control "max-age = 31536000, public"
</ filesMatch>
# 2 days
<filesMatch ". (xml | txt) $">
Header set Cache-Control "max-age = 172800, public, must-revalidate"
</ filesMatch>
# 2 hours
<filesMatch ". (html | htm) $">
Header set Cache-Control "max-age = 7200, must-revalidate"
</ filesMatch>
Врахуйте, що переатестація змушує браузер перевіряти сторінку на наявність змін з моменту першого відвідування.11. Додаємо слешДеякі експерти стверджують, що слеш позитивно позначається на SEO, хоча інші кажуть, що це не має значення. Головне, що від цього гірше не буде:

<IfModulemod_rewrite.c>
RewriteCond% {REQUEST_URI} /+[^.]+$
RewriteRule ^ (. + [^ /]) $% {REQUEST_URI} / [R = 301, L]
</ IfModule>
12. Додаємо заголовки з терміном закінченняЯк і примусове кешування, ці заголовки повідомляють браузерам, що файли не будуть змінюватися певний проміжок часу, а це значить, що браузерам не обов’язково кожен раз завантажувати їх заново.

<ifModulemod_expires.c>
ExpiresActiveOn
ExpiresByType text / html "access plus 2 days"
ExpiresByType image / gif "access plus 60 days"
ExpiresByType image / jpg "access plus 60 days"
ExpiresByType image / png "access plus 60 days"
ExpiresByType application / x-javascript "access plus 60 days"
ExpiresByType text / css "access plus 60 days"
ExpiresByType image / x-icon "access plus 360 days"
</ IfModule>
Хоча за замовчуванням час виставлено в секундах, ви також можете використовувати хвилини, години, дні, тижні, місяці і роки.13. Захист директорій паролемСпочатку вам потрібно буде створити файл під назвою “.htpasswd”, і розмістити його вище кореневого каталогу, щоб він не був доступний по http://mydomainname.com/.htpassword. У цьому файлі ви можете вказати інформацію про пароль для вашого сайту:

username1: password1
username2: password2
Далі створіть новий файл “.htaccess” і завантажте його в директорію, яку хочете заблокувати, і внесіть туди наступний код:

AuthUserFile /path/to/htpasswd/file/.htpasswd
AuthGroupFile / dev / null
AuthName "name of directory"
AuthType Basic
require valid-user
Перший рядок – це повний серверний шлях до вашого файлу htpasswd. Якщо вам хочеться, щоб тільки певний користувач мав доступ, то потрібно буде замінити останній рядок на:

require user username114. Захист окремих файлів паролемДля того щоб заблокувати окремі файли, вам потрібно створити або додати в ваш існуючий файл htpasswd, а також створити і завантажити файл htaccess в директорію, в якій ви хочете захистити файли:

AuthUserFile /path/to/htpasswd/file/.htpasswd
AuthName "Name of Page"
AuthType Basic
<Files "thepage.html">
require valid-user
</ Files>
15. Захист файлів htaccessДля того щоб ще більше захистити ваш веб-сайт, потрібно захистити файли htaccess:

<Files .htaccess>
Order Allow, Deny
Deny from all
</ Files>
Буде відображена помилка 403. Файл може бути змінено на що завгодно для того, щоб захистити його, так як він розташований в тій же директорії, що і вказаний файл htaccess.16. Відключення відображення запиту на скачуванняЯкщо ви не хочете, щоб користувачі мали можливість переглядати і завантажувати конкретні типи файлів, то можна додати наступний код і тоді файли будуть скачиваться автоматично:

AddType application / octet-stream .pdf
AddType application / octet-stream .zip
AddType application / octet-stream .mov
17. Компресія допомогою mod_deflateМожна підвищити швидкість завантаження і скачування для користувачів за допомогою модуля mod_deflate в Apache, який стискає дані до 70%.

<ifmodulemod_deflate.c = "">
<filesmatch ". (js | css | .jpg | .gif | .png | .tiff | .ico) $" = "">
SetOutputFilter DEFLATE
</ filesmatch>
</ ifmodule>
18. Видалення категорії з URLХочете скоротити url http://yourdomain.com/category/apples на простий http://yourdomain.com/apples? Тоді вам потрібно скористатися наступним кодом:

RewriteRule ^ category /(.+)$ http://www.yourdomain.com/$1 [R = 301, L]19. Переклад тексту за допомогою GoogleХочете, щоб конкретні сторінки вашого веб-сайту можна було перевести на іншу мову? Наступний код дозволить вам перенаправити сторінку в перекладач Google, який визначить вихідний мову по доменній зоні.

Options + FollowSymlinks
RewriteEngineOn
RewriteBase /
RewriteRule ^ (. *) - (fr | de | es | it | pt) $ http://www.google.com/translate_c?hl=$2&sl = en&u = http: //site.com/$1 [R, NC]
20. Використовуємо інше розширення файлуХочете змінити розширення ваших файлів з .php на .wow або щось в цьому роді? Тоді вам знадобиться наступний код:

Options + FollowSymlinks
RewriteEngineOn
RewriteBase /
RewriteRule ^ (. +). Zig $ /$1.php [NC, L]
21. Виняток розширення файлуДаний код дозволить вам приховати розширення файлу.

Ссылка на основную публикацию