15 Корисні фрагменти .htaccess для вашого сайту WordPress
Наявність a добре налаштований файл .htaccess важливо, якщо ви хочете підвищити безпеку і зменшення вразливостей на вашому сайті WordPress. Зазвичай основна мета створення a користувацький файл .htaccess це запобігання руйнуванню сайту, але це також чудовий спосіб керувати перенаправленнями та керувати завданнями, пов'язаними з кешем.
.htaccess - це файлу конфігурації використовуються на веб-серверах Apache. Більшість сайтів WordPress працювати на сервері Apache, хоча невелика частина є живиться від Nginx. У цій статті ви можете знайти колекція фрагментів коду .htaccess, більшість з яких можна використовувати для захисту вашого веб-сайту, а решта виконує інші корисні функції.
Не забудьте створити резервну копію файлу .htaccess перш ніж редагувати його, так що ви завжди зможете повернутися до попередньої версії якщо щось піде не так.
І якщо ви - хтось не доторкався до конфігураційних файлів, я рекомендую вам BulletProof Security плагін, який є найнадійнішим (і, можливо, найстарішим) безкоштовний плагін безпеки .htaccess на ринку.
Створіть WP .htaccess за замовчуванням
.htaccess працює на на основі каталогу це означає, що кожен каталог може мати свій власний файл .htaccess. Це може легко статися, що ваш сайт WordPress ще немає файлу .htaccess. Якщо ви не знайдете файл .htaccess у кореневому каталозі створити порожній текстовий файл і назвіть його .htaccess
.
Нижче ви можете знайти за замовчуванням .htaccess WordPress використовує. Всякий раз, коли вам потрібен цей код, ви можете швидко знайти його в коді WordPress. Зауважте, що існує інший .htaccess для WP Multisite.
# BEGIN WordPressRewriteEngine On RewriteBase / RewriteRule ^ index \ tphp $ - [L] RewriteCond% REQUEST_FILENAME! -F RewriteCond% REQUEST_FILENAME! -D RewriteRule. /index.php [L] # END WordPress
Рядки, що починаються з #
є коментарі. Не редагуйте нічого між лініями # BEGIN WordPress
і # END WordPress
. Додайте власні правила .htaccess нижче цих правил за умовчанням.
Усі фрагменти коду можна знайти в цій статті перейдіть до основного файлу .htaccess у кореневому каталозі.
1. Заборонити доступ до всіх файлів .htaccess
Код нижче забороняє доступ для всіх файлів .htaccess, які ви встановили у вашому WordPress. Таким чином можна запобігти баченню людей конфігурації веб-сервера.
# Забороняє доступ до всіх файлів .htaccessЗамовити Дозволити, відмовити від усіх Задовольнити всіх
2. Захистіть конфігурацію WP
The wp-config.php
файл містить всі ваші конфігурації WP, включаючи логін та пароль бази даних. Ви можете або заперечити це від усіх або дайте дозвіл адміністраторам на доступ до нього.
Якщо ви виберете останнє коментар # Дозволити з xx.xx.xx.xxx
рядок (видалити #
з початку рядка) і вставте IP-адресу адміністратора замість xx.xx.xx.xxx
.
# Захищає wp-configЗамовлення Дозволити, Заборонити # Дозволити з xx.xx.xx.xxx # Дозволити від yy.yy.yy.yyy Відхилити від усіх
3. Запобігання атаки XML-RPC DDoS
WordPress підтримує XML-RPC за замовчуванням, яка є інтерфейс, що робить віддалене публікацію можливо. Однак, хоча це велика особливість, це також одна з найбільших уразливостей безпеки WP, як хакери використовувати його для DDoS-атак.
Якщо ви не хочете використовувати цю функцію, краще всього це зробити вимкніть його. Як і раніше, можна додайте винятки, коментуючи # Дозволити з xx.xx.xx.xxx
рядок і додавання IP-адрес вашого адміністратора.
# Захищає XML-RPC, запобігає DDoS-атакуЗамовлення Відхилити, Дозволити # Дозволити з xx.xx.xx.xxx # Дозволити від yy.yy.yy.yyy Відхилити від усіх
4. Захистіть свою адміністративну область
Це також гарна ідея захистити адміністративну область надаючи доступ лише адміністраторам. Тут не забувайте додайте принаймні один “Дозволити” виняток інакше взагалі ви не зможете отримати доступ до свого адміністратора.
# Захищає адміністративну область за допомогою IP AuthUserFile / dev / null AuthGroupFile / dev / null AuthName "Керування доступом адміністратора WordPress" AuthType BasicЗамовити Deny, Дозволити відмовити від усіх Allow з xx.xx.xx.xxx Дозволити з yy.yy.yy.yyy
5. Запобігання переліку каталогів
Більшість сайтів WordPress не відключають перелік каталогів, а це означає, що кожен може переглядати свої папки та файли, включаючи завантаження медіа та файли плагінів. Не варто говорити, що це величезна уразливість безпеки.
Нижче ви можете побачити, як a типовий список каталогів WordPress виглядає так.
На щастя, вам просто потрібно один рядок коду , щоб заблокувати цю функцію. Цей фрагмент коду буде повернути повідомлення про помилку 403 для всіх, хто хоче отримати доступ до ваших каталогів.
# Забороняє параметри списку каталогів -Індекси
6. Запобігти перерахуванню вхідних даних
Якщо персональні посилання WP увімкнено, це досить легко перераховувати імена користувачів за допомогою архіву автора. Виявлені імена користувачів (включаючи ім'я користувача адміністратора) можна використовувати в атаки грубої сили.
Вставте код у файл .htaccess запобігти перерахуванню імен.
# Запобігає перерахуванню вхідних даних RewriteCond% QUERY_STRING author = d RewriteRule ^ /? [L, R = 301]
7. Блокувати спамерів і ботів
Іноді вам захочеться обмежити доступ з певних IP-адрес. Цей фрагмент коду забезпечує простий спосіб блокувати спамерів і ботів, які ви вже знаєте.
# Блокує спамерів і ботівЗамовлення Дозволити, відхилити відмову від xx.xx.xx.xxx Відхилити від yy.yy.yy.yyy Дозволити з усіх
8. Запобігання зображення гарячих зв'язків
Хоча це не загроза безпеці, зображення hotlinking все ще дратує. Люди не тільки використовуйте свої зображення без вашого дозволу але вони навіть роблять це за Вашу ціну. За допомогою цих кількох рядків коду ви можете захистити свій сайт від гарячих зв'язків із зображеннями.
# Забороняє зображення гарячих зв'язків RewriteEngine на RewriteCond% HTTP_REFERER! ^ $ RewriteCond% HTTP_REFERER! ^ Http (s)?: // (www.)? Yourwebsite.com [NC] s)?: // (www.)? yourwebsite2.com [NC] RewriteRule (jpe? g? | png | gif | ico | pdf | flv | swf | gz) $ - [NC, F, L]
9. Обмежити прямий доступ до плагінів & тематичних файлів PHP
Це може бути небезпечно, якщо хтось безпосередньо викликає плагіни та файли тем, чи відбувається це випадково або зловмисним зловмисником. Цей фрагмент коду походить від компанії Acunetix з безпеки сайту; Ви можете прочитати більше про цю вразливість в їхньому блозі.
# Обмежує доступ до файлів PHP з довідників плагінів і тем RewriteCond% REQUEST_URI! ^ / Wp-content / plugins / file / to / exclude \ _ php RewriteCond% REQUEST_URI! / exclude / RewriteRule wp-content / plugins / (. * php) $ - [R = 404, L] Перезаписати% REQUEST_URI! ^ / wp-content / themes / file / to / exclude REQUEST_URI! ^ / Wp-content / themes / каталог / до / виключити / RewriteRule wp-content / themes / (. * Php) $ - [R = 404, L]
10. Налаштування постійних переадресацій
Ви можете легко обробляти постійні переадресації з .htaccess. Спочатку потрібно додати старий URL, потім виконайте новий URL що вказує на сторінку, на яку потрібно перенаправити користувача.
# Постійне перенаправлення Redirect 301 / oldurl1 / http://yoursite.com/newurl1 Перенаправлення 301 / oldurl2 / http://yoursite.com/newurl2
11. Відправити відвідувачів на сторінку обслуговування
Тут ми детально писали про цю техніку. Вам потрібно a окрему сторінку обслуговування (maintenance.html
у прикладі) для цього .htaccess правила для роботи. Цей код розміщує ваш сайт WordPress в режим обслуговування.
# Перенаправляє на сторінку обслуговуванняRewriteEngine на RewriteCond% REMOTE_ADDR! ^ 123 458 789 000 RewriteCond% REQUEST_URI! /Maintenance.html$ [NC] Перепишіть%% REQUEST_URI! ) [NC] RewriteRule. * /Maintenance.html [R = 503, L]
12. Обмежити весь доступ до WP
The / wp-includes /
папки містить основні файли WordPress які необхідні для роботи CMS. Немає вмісту, плагінів, тем або що-небудь, до якого користувач може отримати доступ тут. Тому для того, щоб посилити безпеку, краще обмежити доступ до нього.
# Блокує всі папки та файли wp-файлівRewriteEngine На RewriteBase / RewriteRule ^ wp-admin / включає / - [F, L] RewriteRule! ^ Wp-includes / - [S = 3] RewriteRule ^ wp-includes / [^ /] + php $ - [F, L] RewriteRule ^ wp-includes / js / tinymce / langs /.+ php - [F, L] RewriteRule ^ wp-includes / theme-compat / - [F, L]
13. Блокувати міжсекторні сценарії (XSS)
Наступний фрагмент коду від WP Mix і захищає ваш сайт від деякі загальні атаки XSS, а саме ін'єкції скриптів і спроби змінити глобальні змінні і змінні запиту.
# Блокує деякі XSS-атакиRewriteCond% QUERY_STRING (\ _% 3E) [NC, OR] RewriteCond% QUERY_STRING GLOBALS (= | \ _% [0-9A-Z] 0,2) [OR] Переписати%% QUERY_STRING _REQUEST (= | | [| [0-9A-Z] 0,2) RewriteRule. * Index.php [F, L]
14. Увімкніть кешування браузера
Як я вже згадував раніше, .htaccess не тільки корисний з міркувань безпеки і перенаправлення, але він також може допомогти вам керувати кешем. Нижче наведено фрагмент коду з елементами "Елегантні теми" дозволяє кешування браузера надаючи можливість відвідувачам зберегти певні типи файлів, тому наступного разу, коли вони відвідують, їм не доведеться знову завантажувати їх.
# Дозволяє кешувати браузеромExpiresByType image / jpeg "доступ 1 рік" ExpiresByType image / gif "доступ 1 рік" ExpiresByType image / png "доступ 1 рік" ExpiresByType text / css "доступ 1 місяць" pdf "доступ 1 місяць" ExpiresByType text / x-javascript "доступ 1 місяць" ExpiresByType application / x-shockwave-flash "доступ 1 місяць" ExpiresByType image / x-icon "доступ 1 рік" ExpiresDefault "access 2 days"
15. Налаштуйте власні сторінки помилок
Ви можете використовувати .htaccess для налаштування користувацьких сторінок помилок на вашому сайті WordPress. Щоб цей метод працював, вам також потрібно створити власні сторінки помилок (custom-403.html
, custom-404.html
у прикладі) і завантажити їх до кореневої папки.
Можна налаштувати користувацьку сторінку помилок для будь-який код стану помилки HTTP (Коди статусу 4XX та 5XX).
# Встановлює сторінки користувацьких помилок ErrorDocument 403 /custom-403.html ErrorDocument 404 /custom-404.html