Экономика стран

К сожалению, большинство людей, которые будут ими затронуты почти весь мир, не будут иметь никакого влияния на результат. Вести Экономика Дайджест иностранной прессы за 14 августа.
Вести Экономика Греции снова придется списывать долги Греция не сможет самостоятельно расплатиться по долгам, и понадобится новая реструктуризация долгов, чтобы спасти страну от банкротства.

25 правил .htaccess, які повинен знати кожен web-розробник

  1. 25 правил .htaccess, які повинен знати кожен web-розробник Перш ніж ми почнемо, звертаю вашу увагу...
  2. 2. Блокуємо всі запити від небажаних User Agents
  3. 3. Забороняємо доступ для всіх, крім зазначених IP-адрес
  4. 4. Налаштовуємо SEO-Friendly 301 Redirect
  5. 5. Створюємо власні сторінки помилок
  6. 6. Створюємо чорний список IP адрес
  7. 7. Встановлюємо e-mail адресу за замовчуванням для адміністратора
  8. 8. Захищаємо певний файл
  9. 9. Стискаємо елементи за допомогою mod_deflate
  10. 10. Додаємо термін життя в заголовки
  11. 11. Встановлюємо сторінки за замовчуванням
  12. 12. Захищаємо паролем папки і файли
  13. 13. перенаправляє зі старого домену - на новий
  14. 14. Підсилюємо кешування
  15. 15. Стискаємо компоненти сайту шляхом включення Gzip
  16. 16. Видаляємо «category» з URL
  17. 17. Забороняємо перегляд вмісту папки
  18. 18. перенаправляє свою RSS-стрічку на FeedBurner
  19. 19. Забороняємо коментарі від користувачів без Referrer
  20. 20. Прибираємо розширення файлу з URL
  21. 21. Захищаємо сайт
  22. 22. перенаправляє користувача за допомогою директиви RedirectMatch і регулярних виразів
  23. 23. Захист від прямих посилань для зображень через .htaccess
  24. 24. ImageCache і захист від хотлінк через .htaccess
  25. 25. Мало цього?
  26. 25 правил .htaccess, які повинен знати кожен web-розробник
  27. 1. Забороняємо завантаження файлів з зовнішніх сайтів
  28. 2. Блокуємо всі запити від небажаних User Agents
  29. 3. Забороняємо доступ для всіх, крім зазначених IP-адрес
  30. 4. Налаштовуємо SEO-Friendly 301 Redirect
  31. 5. Створюємо власні сторінки помилок
  32. 6. Створюємо чорний список IP адрес
  33. 7. Встановлюємо e-mail адресу за замовчуванням для адміністратора
  34. 8. Захищаємо певний файл
  35. 9. Стискаємо елементи за допомогою mod_deflate
  36. 10. Додаємо термін життя в заголовки
  37. 11. Встановлюємо сторінки за замовчуванням
  38. 12. Захищаємо паролем папки і файли
  39. 13. перенаправляє зі старого домену - на новий
  40. 14. Підсилюємо кешування
  41. 15. Стискаємо компоненти сайту шляхом включення Gzip
  42. 16. Видаляємо «category» з URL
  43. 17. Забороняємо перегляд вмісту папки
  44. 18. перенаправляє свою RSS-стрічку на FeedBurner
  45. 19. Забороняємо коментарі від користувачів без Referrer
  46. 20. Прибираємо розширення файлу з URL
  47. 21. Захищаємо сайт
  48. 22. перенаправляє користувача за допомогою директиви RedirectMatch і регулярних виразів
  49. 23. Захист від прямих посилань для зображень через .htaccess
  50. 24. ImageCache і захист від хотлінк через .htaccess
  51. 25. Мало цього?
  52. 25 правил .htaccess, які повинен знати кожен web-розробник
  53. 1. Забороняємо завантаження файлів з зовнішніх сайтів
  54. 2. Блокуємо всі запити від небажаних User Agents
  55. 3. Забороняємо доступ для всіх, крім зазначених IP-адрес
  56. 4. Налаштовуємо SEO-Friendly 301 Redirect
  57. 5. Створюємо власні сторінки помилок
  58. 6. Створюємо чорний список IP адрес
  59. 7. Встановлюємо e-mail адресу за замовчуванням для адміністратора
  60. 8. Захищаємо певний файл
  61. 9. Стискаємо елементи за допомогою mod_deflate
  62. 10. Додаємо термін життя в заголовки
  63. 11. Встановлюємо сторінки за замовчуванням
  64. 12. Захищаємо паролем папки і файли
  65. 13. перенаправляє зі старого домену - на новий
  66. 14. Підсилюємо кешування
  67. 15. Стискаємо компоненти сайту шляхом включення Gzip
  68. 16. Видаляємо «category» з URL
  69. 17. Забороняємо перегляд вмісту папки
  70. 18. перенаправляє свою RSS-стрічку на FeedBurner
  71. 19. Забороняємо коментарі від користувачів без Referrer
  72. 20. Прибираємо розширення файлу з URL
  73. 21. Захищаємо сайт
  74. 22. перенаправляє користувача за допомогою директиви RedirectMatch і регулярних виразів
  75. 23. Захист від прямих посилань для зображень через .htaccess
  76. 24. ImageCache і захист від хотлінк через .htaccess
  77. 25. Мало цього?

25 правил .htaccess, які повинен знати кожен web-розробник

Перш ніж ми почнемо, звертаю вашу увагу на той факт, що зловживання використанням .htaccess може привести до зниження продуктивності вашого сайту. Головне правило: використовувати .htaccess для реалізації того чи іншого завдання стоїть тільки в тому випадку, якщо немає інших варіантів.

Переконайтеся в тому, що ви зробили резервну копію оригінального файлу .htaccess для вашого сайту, перш ніж вносити будь-які зміни. Крім того, пам'ятайте - працездатність вказаних нижче правил залежить від індивідуальних налаштувань вашого web-сервера, заданих хостером. Деякі директиви можуть бути заборонені і не працювати.

.htaccess (Від. Англ. Hypertext access) - файл додаткової конфігурації веб-сервера Apache , А також подібних йому серверів. Дозволяє задавати велику кількість додаткових параметрів і дозволів для роботи веб-сервера в окремих каталогах (папках), таких як керований доступ до каталогів, перепризначення типів файлів і т.д., без зміни головного конфігураційного файлу.

Файл .htaccess може бути розміщений в будь-якому каталозі. Директиви цього файлу діють на всі файли в поточному каталозі і у всіх його підкаталогах (якщо ці директиви не перевизначені директивами нижележащих файлів .htaccess).

Для того щоб ці файли .htaccess можна було використовувати, необхідні відповідні налаштування головного конфігураційного файлу (значення директиви AllowOverride має бути встановлено All). Як правило, переважна більшість хостерів дозволяють використовувати свої файли .htaccess.

1. Забороняємо завантаження файлів з зовнішніх сайтів

Вам набридли люди, які розміщують картинки, опубліковані на вашому сайті - на своїх ресурсах, тим самим витрачаючи ваш трафік і створюючи непотрібну навантаження на ваш хостинг? Даний код, розміщений в кінці вашого файлу .htaccess, дозволить запобігти завантаження ваших зображень - сторонніми сайтами.

Options + FollowSymlinks # Забороняємо завантаження файлів з зовнішніх сайтів RewriteEngine On RewriteCond% {HTTP_REFERER}! ^ $ RewriteCond% {HTTP_REFERER}! ^ Http: // (www.)? Site.com/ [nc] RewriteRule. *. (Gif | jpg | png) $ http://site.com/stop.gif[nc]

Не забудьте змінити site.com на ваше доменне ім'я і створити зображення stop.gif, яке буде показано замість запитаної картинки.

2. Блокуємо всі запити від небажаних User Agents

Це правило дозволяє заблокувати небажані User Agent, які можуть бути потенційно небезпечними або просто перевантажувати сервер непотрібними запитами.

# Блокуємо поганих ботів і роботів SetEnvIfNoCase user-Agent ^ FrontPage [NC, OR] SetEnvIfNoCase user-Agent ^ Java. * [NC, OR] SetEnvIfNoCase user-Agent ^ Microsoft.URL [NC, OR] SetEnvIfNoCase user-Agent ^ MSFrontPage [ NC, OR] SetEnvIfNoCase user-Agent ^ Offline.Explorer [NC, OR] SetEnvIfNoCase user-Agent ^ [Ww] eb [Bb] andit [NC, OR] SetEnvIfNoCase user-Agent ^ Zeus [NC] <limit get = "" post = "" head = ""> Order Allow, Deny Allow from all Deny from env = bad_bot </ limit>

Список User Agent браузерів, роботів і павуків пошукових машин, веб-каталогів, менеджерів закачувань, спам-ботів і поганих ботів можна знайти на сайті List of User-Agents .

3. Забороняємо доступ для всіх, крім зазначених IP-адрес

Якщо з якої-небудь причини, ви хочете заборонити всім або дозволити тільки окремим IP-адресами доступ до вашого сайту - додайте цей код в ваш .htaccess файл:

# Забороняємо доступ для всіх, крім зазначених IP-адрес ErrorDocument 403 http://www.domainname.com Order deny, allow Deny from all Allow from 124.34.48.165 Allow from 102.54.68.123

Не забудьте змінити domainname.com на ваше доменне ім'я.

4. Налаштовуємо SEO-Friendly 301 Redirect

Якщо ви перенесли доменне ім'я (або свій підсайт) або хочете перенаправляти користувача на певну сторінку (сторінки), без санкцій з боку пошукових машин, використовуйте цей код:

# Налаштовуємо SEO-Friendly 301 Redirect Redirect 301 /1/file.html http://www.site.com/2/file.html

Не забудьте змінити site.com на ваше доменне ім'я, а /1/file.html і /2/file.html на відповідні директорії і сторінки.

5. Створюємо власні сторінки помилок

Вам набрид стандартний вигляд сторінок помилок? Немає проблем - за допомогою наступного коду, ви легко можете створити свою сторінку і показувати користувачеві саме її:

ErrorDocument 401 /error/401.php ErrorDocument 403 /error/403.php ErrorDocument 404 /error/404.php ErrorDocument 500 /error/500.php

Не забудьте створити в кореневій директорії вашого сервера папку error і розмістити в ній відповідні файли.

6. Створюємо чорний список IP адрес

Втомилися від спам-коментарів або певного користувача? Просто заблокуйте його IP за допомогою наступного коду, який додається в .htaccess файл.

# Створюємо чорний список IP адрес allow from all deny from 145.186.14.122 deny from 124.15.

Дізнатися IP адреси коментаторів можна або в логах Apache або за допомогою сервісів статистики. У багатьох CMS є свої вбудовані засоби для моніторингу адрес відвідувачів. Наприклад, в Drupal IP- адреси коментаторів можна побачити в адміністративній панелі - Звіти.

7. Встановлюємо e-mail адресу за замовчуванням для адміністратора

Використовуйте цей код, для того, щоб встановити e-mail адресу за замовчуванням для адміністратора сервера.

# Встановлюємо e-mail адресу за замовчуванням для адміністратора ServerSignature EMail SetEnv SERVER_ADMIN [email protected]

Не забудьте замінити [email protected] - своїм e-mail адресою.

8. Захищаємо певний файл

Нижченаведений код дозволяє вам заборонити доступ до будь-якого файлу - при запиті буде видаватися помилка 403. Для прикладу я закрив доступ до самого файлу htaccess, підвищивши загальний рівень безпеки сайту.

# Захищаємо .htaccess файл <files .htaccess = ""> order allow, deny deny from all </ files>

9. Стискаємо елементи за допомогою mod_deflate

В якості альтернативи компресії файлів за допомогою Gzip, ви можете використовувати mod_deflate (імовірно працює швидше). Додайте наступний код на початку вашого файлу .htaccess (також ви можете додати перерахування .jpg | .gif | .png | .tiff | .ico ):

# Стискаємо елементи за допомогою mod_deflate <ifmodule mod_deflate.c = ""> <filesmatch. (Js | css) $ = ""> SetOutputFilter DEFLATE </ filesmatch> </ ifmodule>

10. Додаємо термін життя в заголовки

Даний код дозволяє додати терміни життя в заголовки:

# Додаємо термін життя в заголовки <filesmatch. (Ico | pdf | flv | jpg | jpeg | png | gif | swf) $ = ""> Header set Expires «Wed, 21 May 2010 20:00:00 GMT» </ filesmatch >

11. Встановлюємо сторінки за замовчуванням

Зазвичай сторінкою за замовчуванням є index.html, однак за допомогою цього коду ви можете налаштувати за замовчуванням будь-яку іншу сторінку.

# Встановлюємо альтернативну сторінку за замовчуванням DirectoryIndex about.html

12. Захищаємо паролем папки і файли

Ви можете включити перевірку пароля для доступу в будь-яку папку або файл на вашому сервері, використовуючи цей код:

# Захист паролем файлу <files secure.php = ""> AuthType Basic AuthName «Prompt» AuthUserFile /pub/home/.htpasswd Require valid-user </ files> # захист паролем папки resides AuthType basic AuthName «This directory is protected» AuthUserFile /pub/home/.htpasswd AuthGroupFile / dev / null Require valid-user

Для того, щоб організувати доступ до файлу за паролем, необхідно створити файл .htpasswd і внести в нього пару логін-пароль в форматі user: password.

Однак в цьому випадку паролі будуть зберігається у відкритому вигляді, що не дуже добре з точки зору безпеки. Тому оптимальніше пароль зашифрувати. Для цього скористайтеся сервісами генерації записів в файли .htpasswd. наприклад, ось таким .

У нашому прикладі файл з паролями доступу лежить в кореневій директорії сайту і називається .htpasswd. Директорія вказується від кореня сервера і якщо шлях буде некоректним - Apache, не отримавши доступу до файлу, відмовить в доступі до папки будь-якому користувачеві - в тому чілсе і тому, який ввів правильну пару логін: пароль.

13. перенаправляє зі старого домену - на новий

Використовуючи .htaccess, ви можете налаштувати перенаправлення зі старого доменного імені на нове, додавши наступний код:

# Перенаправляє зі старого домену old.com - на новий RewriteEngine On RewriteRule ^ (. *) $ Http://www.new.com/$1 [R = 301, L]

Перенаправлення використовується в тому випадку, якщо ви переносите свій існуючий сайт на нове доменне ім'я. У цьому випадку будь-який користувач, який набере в адресному рядку www.old.com - буде перенаправлений на www.new.com.

14. Підсилюємо кешування

Використання цього правила не означає пряме прискорення завантаження вашого сайту. Воно призначене для більш швидкого завантаження сайту - для вже заходив на нього відвідувача, шляхом відправки статусу 304 для тих елементів, що не оновлювалися.

Таким чином, при повторному завантаженні сторінки браузер відвідувача не буде заново завантажувати зображення, скрипти або CSS, а виведе ті файли, які вже зберігаються в його кеші. Ви можете змінити термін життя кеша, шляхом коригування його значення в роках (year), місяцях (month) або, наприклад - секундах (seconds). У прикладі вказано 1 рік.

# Підсилюємо кешування FileETag MTime Size <ifmodule mod_expires.c> <filesmatch ". (Jpg | gif | png | css | js) $"> ExpiresActive on ExpiresDefault «access plus 1 year» </ filesmatch> </ ifmodule>

15. Стискаємо компоненти сайту шляхом включення Gzip

При використанні Gzip, сервер буде стискати файли перед відправкою їх користувачеві, через що ваш сайт буде завантажуватися швидше.

# Стискаємо компоненти сайту шляхом включення Gzip AddOutputFilterByType DEFLATE text / html text / plain .. .. text / xml application / xml application / xhtml + xml .. .. text / javascript text / css application / x-javascript BrowserMatch ^ Mozilla / 4 gzip-only-text / html BrowserMatch ^ Mozilla / 4.0 [678] no-gzip BrowserMatch bMSIE! no-gzip! gzip-only-text / html

Зверніть увагу, що включення компресії призведе до більшого навантаження на процесор сервера. Тут рядок AddOutputFilterByType записується в одну довгу рядок з двома нижніми (все .. потрібно прибрати).

16. Видаляємо «category» з URL

Щоб відредагувати ярлик yourdomain.com/category/blue на yourdomain.com/blue, просто додайте наступний код в кінці вашого .htaccess файлу.

# Видаляємо category з URL RewriteRule ^ category /(.+)$ http://www.site.com/$1 [R = 301, L]

Не забудьте змінити www.site.com на ваше доменне ім'я.

17. Забороняємо перегляд вмісту папки

Для того, щоб обмежити доступ до тек, які можуть містити різноманітну інформацію і для забезпечення безпеки сервера, додайте цей код в файл .htaccess

# Забороняємо перегляд вмісту папки Options All -Indexes

18. перенаправляє свою RSS-стрічку на FeedBurner

Покажемо як це можна зробити на прикладі RSS -стрічка Drupal на сервіс Google Feedburner.

# Перенаправляє RSS-стрічку Drupal на FeedBurner <ifmodule mod_rewrite.c = ""> RewriteEngine on RewriteCond% {HTTP_USER_AGENT}! FeedBurner [NC] RewriteCond% {HTTP_USER_AGENT}! FeedValidator [NC] RewriteRule ^ rss.xml $ http: // feeds .feedburner.com / yourfeed [R = 302, NC, L] </ ifmodule>

Спочатку необхідно зареєструвати стрічку свого блога в сервісі Feedburner . Далі не забудьте замінити yourfeed на ім'я вашої стрічки вже в Feedburner.

19. Забороняємо коментарі від користувачів без Referrer

Найчастіше спам-боти звертаються безпосередньо до файлу коментарів, наприклад до wp-comments-post.php, не заходячи на сторінки записів вашого блогу. Наведений нижче код дозволяє заблокувати коментарі, надіслані користувачами, які прийшли «з нізвідки», дозволяючи коментувати тільки тим читачам, які перейшли на сторінку вашого блогу з будь-яких інших сторінок (наприклад, результатів пошуку Google).

# Забороняємо коментарі від користувачів без Referrer RewriteEngine On RewriteCond% {REQUEST_METHOD} POST RewriteCond% {REQUEST_URI} .comment \ / reply \ / * RewriteCond% {HTTP_REFERER}!. * Yourblog.com. * [OR] RewriteCond% {HTTP_USER_AGENT} ^ $ RewriteRule (. *) ^ http: //% {REMOTE_ADDR} / $ [R = 301, L]

Не забудьте замінити yourblog.com на доменне ім'я вашого блогу.

20. Прибираємо розширення файлу з URL

Даний код дозволяє видалити розширення файлу .php (ви можете змінити його на будь-яке інше, наприклад - .html) з URL-адрес сторінок.

# Прибираємо розширення файлу з URL RewriteRule ^ (([^ /] + /) * [^.] +) $ /$1.php [L]

21. Захищаємо сайт

Даний код дозволяє захистити сайт від scripts enjection і небажаних модифікацій _REQUEST і / або GLOBALS:

# Включаємо відстеження сім-посилань Options + FollowSymLinks # Запускаємо url_rewriting RewriteEngine On # Блокуємо всі посилання, що містять <script> RewriteCond% {QUERY_STRING} (\ <|% 3C). * Script. * (\> |% 3E) [NC, OR] # Блокуємо всі скрипти, які намагаються змінити змінні PHP Globals: RewriteCond% {QUERY_STRING} GLOBALS (= | \ [| \% [0-9A-Z] {0,2}) [OR] # Блокуємо всі скрипти, які намагаються змінити змінну _REQUEST: RewriteCond% {QUERY_STRING} _REQUEST (= | \ [| \% [0-9A-Z] {0,2}) # перенаправляти всі подібні на сторінку з помилкою 403 - заборонено RewriteRule ^ (. *) $ index.php [F, L]

22. перенаправляє користувача за допомогою директиви RedirectMatch і регулярних виразів

Ще одна корисна директива, рекомендована до використання - RedirectMatch. Цитата: «Ця директива дозволяє в якості запитуваної адреси використовувати регулярний вираз (пересилання не« з документа ", а" з усіх документів, типу ... "). Редирект зовнішній - браузеру повідомляється про необхідність завантажити іншу сторінку.

синтаксис:

RedirectMatch [status] regexp URL

Значення статусів (код повернення веб-сервера) стандартні:

permanent (301 - постійний редирект), temp (302 - тимчасовий редирект, приходьте ще), seeother (303 - летимо туди, там багато смачного), gone (410 - знаходиться на відстані назавжди).

приклад:

Те ж перенаправлення зі старого домену на новий без підключення RewriteEngine:

RedirectMatch 301 ^ (. *) $ Www.domainname.com/$1

Від себе додам, що ви можете використовувати не тільки http-статуси, а й інші умови:

RedirectMatch (. *) \. Gif $ http: //www.myserver.com$1.png RedirectMatch (. * \. Jpg) $ http: //www.myanother.com$1

Обов'язково зробіть резервну копію файлу .htaccess до внесення змін і перевірте працездатність всього сайту - після додавання нових рядків.

23. Захист від прямих посилань для зображень через .htaccess

Хотлінк (Hotlink) - вставка прямих посилань зображень або файлів з одного сайту на інші. Цей прийом використовується досить часто, ну наприклад, у вас на сервері не вистачає місця для зберігання картинок і ви користуєтеся яким-небудь безкоштовним сервісом для зберігання файлів зображень, тобто завантажуєте картинку, отримуєте URL і вставляєте його на свій сайт.

У підсумку: ви зберігаєте місце для вашого сайту і використовуєте пропускну здатність хостингу для картинок, але це вже не ваша справа. Але ось як бути, якщо хтось вирішив, що ваш сайт можна використовувати як подібний сервіс.

Як не стати безкоштовним постачальником зображень і файлів?

Чи є захист від цього? Так є! Щоб заборонити іншим сайтам користуватися вашим трафіком і / або просто вказувати прямі посилання на ваші файли (картинки), то додайте в ваш .htaccess файл наступні рядки:

# Заборонити іншим сайтам використовувати прямі посилання на ваші картинки RewriteCond% {HTTP_REFERER}! ^ $ # Далі список дозволених доменів RewriteCond% {HTTP_REFERER}! ^ Http (s)?: // (www.)? Sitename.ru. * $ [ NC] RewriteCond% {HTTP_REFERER}! ^ http (s)?: // (www.)? sitename.ru: 80. * $ [NC] # IP сайту (домена) RewriteCond% {HTTP_REFERER}! ^ http (s) ?: //111.111.111.111.*$ [NC] RewriteCond% {HTTP_REFERER}! ^ http (s)?: //111.111.111.111: 80. * $ [NC] RewriteCond% {HTTP_REFERER}! ^ http (s) ?: // (www.)? yandex.ru [NC] RewriteCond% {HTTP_REFERER}! ^ http (s)?: // (www.)? google. [NC] # RewriteCond% {HTTP_REFERER}! ^ Http (s)?: // (www.)? Домен_дружественного сайта.ru [NC] RewriteCond% {HTTP_REFERER}! Search? Q = cache [NC] # Формати файлів, для яких встановлюється захист # Виводить помилку 403 # RewriteRule \. (jpe? g | bmp | gif | png | css | mov | swf | dcr | exe | rar | avi | vob | zip | pdf | txt | doc | flv | mp3 | mp4) $ - [NC, F, L] # або показує Спецмалюнок замість зазначеного RewriteRule. * \. (jpe? g | bmp | gif | png) $ files / images / nohotlink.jpg [NC, L]

У підсумку всі інші сайти отримають помилку 403 Forbidden (тобто Доступ заборонений) і ваша пропускна здатність більше «не працює на інших».

24. ImageCache і захист від хотлінк через .htaccess

Для ImageCache попередній пункт працювати не буде, тому додаємо такі настройки:

SetEnvIfNoCase Referer «^ $» local_ref = 1 # Allowed domains # Далі дозволені домени SetEnvIfNoCase Referer «^ http: // (www \.)? Domain \ .ru» local_ref = 1 SetEnvIfNoCase Referer «^ http: // (www \. )? domain \ .com »local_ref = 1 # File extensions that you want to protect # Розширення файлів, які потрібно захистити <FilesMatch" \. (bmp | jpe? g | gif | png) "> Order Allow, Deny Allow from env = local_ref </ FilesMatch>

Тепер у нас є і захист від хотлінк і модуль ImageCache - разом вони працюють чудово. Одне «але» - таким способом, як ви бачите не вийде видавати іншу картинку; тільки захист своїх зображень, що і є основною метою.

25. Мало цього?

Ось кращі і докладні ресурси по магічному .htaccess в Інтернеті:

25 правил .htaccess, які повинен знати кожен web-розробник


Перш ніж ми почнемо, звертаю вашу увагу на той факт, що зловживання використанням .htaccess може привести до зниження продуктивності вашого сайту. Головне правило: використовувати .htaccess для реалізації того чи іншого завдання стоїть тільки в тому випадку, якщо немає інших варіантів.

Переконайтеся в тому, що ви зробили резервну копію оригінального файлу .htaccess для вашого сайту, перш ніж вносити будь-які зміни. Крім того, пам'ятайте - працездатність вказаних нижче правил залежить від індивідуальних налаштувань вашого web-сервера, заданих хостером. Деякі директиви можуть бути заборонені і не працювати.

.htaccess (Від. Англ. Hypertext access) - файл додаткової конфігурації веб-сервера Apache , А також подібних йому серверів. Дозволяє задавати велику кількість додаткових параметрів і дозволів для роботи веб-сервера в окремих каталогах (папках), таких як керований доступ до каталогів, перепризначення типів файлів і т.д., без зміни головного конфігураційного файлу.

Файл .htaccess може бути розміщений в будь-якому каталозі. Директиви цього файлу діють на всі файли в поточному каталозі і у всіх його підкаталогах (якщо ці директиви не перевизначені директивами нижележащих файлів .htaccess).

Для того щоб ці файли .htaccess можна було використовувати, необхідні відповідні налаштування головного конфігураційного файлу (значення директиви AllowOverride має бути встановлено All). Як правило, переважна більшість хостерів дозволяють використовувати свої файли .htaccess.

1. Забороняємо завантаження файлів з зовнішніх сайтів

Вам набридли люди, які розміщують картинки, опубліковані на вашому сайті - на своїх ресурсах, тим самим витрачаючи ваш трафік і створюючи непотрібну навантаження на ваш хостинг? Даний код, розміщений в кінці вашого файлу .htaccess, дозволить запобігти завантаження ваших зображень - сторонніми сайтами.

Options + FollowSymlinks # Забороняємо завантаження файлів з зовнішніх сайтів RewriteEngine On RewriteCond% {HTTP_REFERER}! ^ $ RewriteCond% {HTTP_REFERER}! ^ Http: // (www.)? Site.com/ [nc] RewriteRule. *. (Gif | jpg | png) $ http://site.com/stop.gif[nc]

Не забудьте змінити site.com на ваше доменне ім'я і створити зображення stop.gif, яке буде показано замість запитаної картинки.

2. Блокуємо всі запити від небажаних User Agents

Це правило дозволяє заблокувати небажані User Agent, які можуть бути потенційно небезпечними або просто перевантажувати сервер непотрібними запитами.

# Блокуємо поганих ботів і роботів SetEnvIfNoCase user-Agent ^ FrontPage [NC, OR] SetEnvIfNoCase user-Agent ^ Java. * [NC, OR] SetEnvIfNoCase user-Agent ^ Microsoft.URL [NC, OR] SetEnvIfNoCase user-Agent ^ MSFrontPage [ NC, OR] SetEnvIfNoCase user-Agent ^ Offline.Explorer [NC, OR] SetEnvIfNoCase user-Agent ^ [Ww] eb [Bb] andit [NC, OR] SetEnvIfNoCase user-Agent ^ Zeus [NC] <limit get = "" post = "" head = ""> Order Allow, Deny Allow from all Deny from env = bad_bot </ limit>

Список User Agent браузерів, роботів і павуків пошукових машин, веб-каталогів, менеджерів закачувань, спам-ботів і поганих ботів можна знайти на сайті List of User-Agents .

3. Забороняємо доступ для всіх, крім зазначених IP-адрес

Якщо з якої-небудь причини, ви хочете заборонити всім або дозволити тільки окремим IP-адресами доступ до вашого сайту - додайте цей код в ваш .htaccess файл:

# Забороняємо доступ для всіх, крім зазначених IP-адрес ErrorDocument 403 http://www.domainname.com Order deny, allow Deny from all Allow from 124.34.48.165 Allow from 102.54.68.123

Не забудьте змінити domainname.com на ваше доменне ім'я.

4. Налаштовуємо SEO-Friendly 301 Redirect

Якщо ви перенесли доменне ім'я (або свій підсайт) або хочете перенаправляти користувача на певну сторінку (сторінки), без санкцій з боку пошукових машин, використовуйте цей код:

# Налаштовуємо SEO-Friendly 301 Redirect Redirect 301 /1/file.html http://www.site.com/2/file.html

Не забудьте змінити site.com на ваше доменне ім'я, а /1/file.html і /2/file.html на відповідні директорії і сторінки.

5. Створюємо власні сторінки помилок

Вам набрид стандартний вигляд сторінок помилок? Немає проблем - за допомогою наступного коду, ви легко можете створити свою сторінку і показувати користувачеві саме її:

ErrorDocument 401 /error/401.php ErrorDocument 403 /error/403.php ErrorDocument 404 /error/404.php ErrorDocument 500 /error/500.php

Не забудьте створити в кореневій директорії вашого сервера папку error і розмістити в ній відповідні файли.

6. Створюємо чорний список IP адрес

Втомилися від спам-коментарів або певного користувача? Просто заблокуйте його IP за допомогою наступного коду, який додається в .htaccess файл.

# Створюємо чорний список IP адрес allow from all deny from 145.186.14.122 deny from 124.15.

Дізнатися IP адреси коментаторів можна або в логах Apache або за допомогою сервісів статистики. У багатьох CMS є свої вбудовані засоби для моніторингу адрес відвідувачів. Наприклад, в Drupal IP- адреси коментаторів можна побачити в адміністративній панелі - Звіти.

7. Встановлюємо e-mail адресу за замовчуванням для адміністратора

Використовуйте цей код, для того, щоб встановити e-mail адресу за замовчуванням для адміністратора сервера.

# Встановлюємо e-mail адресу за замовчуванням для адміністратора ServerSignature EMail SetEnv SERVER_ADMIN [email protected]

Не забудьте замінити [email protected] - своїм e-mail адресою.

8. Захищаємо певний файл

Нижченаведений код дозволяє вам заборонити доступ до будь-якого файлу - при запиті буде видаватися помилка 403. Для прикладу я закрив доступ до самого файлу htaccess, підвищивши загальний рівень безпеки сайту.

# Захищаємо .htaccess файл <files .htaccess = ""> order allow, deny deny from all </ files>

9. Стискаємо елементи за допомогою mod_deflate

В якості альтернативи компресії файлів за допомогою Gzip, ви можете використовувати mod_deflate (імовірно працює швидше). Додайте наступний код на початку вашого файлу .htaccess (також ви можете додати перерахування .jpg | .gif | .png | .tiff | .ico ):

# Стискаємо елементи за допомогою mod_deflate <ifmodule mod_deflate.c = ""> <filesmatch. (Js | css) $ = ""> SetOutputFilter DEFLATE </ filesmatch> </ ifmodule>

10. Додаємо термін життя в заголовки

Даний код дозволяє додати терміни життя в заголовки:

# Додаємо термін життя в заголовки <filesmatch. (Ico | pdf | flv | jpg | jpeg | png | gif | swf) $ = ""> Header set Expires «Wed, 21 May 2010 20:00:00 GMT» </ filesmatch >

11. Встановлюємо сторінки за замовчуванням

Зазвичай сторінкою за замовчуванням є index.html, однак за допомогою цього коду ви можете налаштувати за замовчуванням будь-яку іншу сторінку.

# Встановлюємо альтернативну сторінку за замовчуванням DirectoryIndex about.html

12. Захищаємо паролем папки і файли

Ви можете включити перевірку пароля для доступу в будь-яку папку або файл на вашому сервері, використовуючи цей код:

# Захист паролем файлу <files secure.php = ""> AuthType Basic AuthName «Prompt» AuthUserFile /pub/home/.htpasswd Require valid-user </ files> # захист паролем папки resides AuthType basic AuthName «This directory is protected» AuthUserFile /pub/home/.htpasswd AuthGroupFile / dev / null Require valid-user

Для того, щоб організувати доступ до файлу за паролем, необхідно створити файл .htpasswd і внести в нього пару логін-пароль в форматі user: password.

Однак в цьому випадку паролі будуть зберігається у відкритому вигляді, що не дуже добре з точки зору безпеки. Тому оптимальніше пароль зашифрувати. Для цього скористайтеся сервісами генерації записів в файли .htpasswd. наприклад, ось таким .

У нашому прикладі файл з паролями доступу лежить в кореневій директорії сайту і називається .htpasswd. Директорія вказується від кореня сервера і якщо шлях буде некоректним - Apache, не отримавши доступу до файлу, відмовить в доступі до папки будь-якому користувачеві - в тому чілсе і тому, який ввів правильну пару логін: пароль.

13. перенаправляє зі старого домену - на новий

Використовуючи .htaccess, ви можете налаштувати перенаправлення зі старого доменного імені на нове, додавши наступний код:

# Перенаправляє зі старого домену old.com - на новий RewriteEngine On RewriteRule ^ (. *) $ Http://www.new.com/$1 [R = 301, L]

Перенаправлення використовується в тому випадку, якщо ви переносите свій існуючий сайт на нове доменне ім'я. У цьому випадку будь-який користувач, який набере в адресному рядку www.old.com - буде перенаправлений на www.new.com.

14. Підсилюємо кешування

Використання цього правила не означає пряме прискорення завантаження вашого сайту. Воно призначене для більш швидкого завантаження сайту - для вже заходив на нього відвідувача, шляхом відправки статусу 304 для тих елементів, що не оновлювалися.

Таким чином, при повторному завантаженні сторінки браузер відвідувача не буде заново завантажувати зображення, скрипти або CSS, а виведе ті файли, які вже зберігаються в його кеші. Ви можете змінити термін життя кеша, шляхом коригування його значення в роках (year), місяцях (month) або, наприклад - секундах (seconds). У прикладі вказано 1 рік.

# Підсилюємо кешування FileETag MTime Size <ifmodule mod_expires.c> <filesmatch ". (Jpg | gif | png | css | js) $"> ExpiresActive on ExpiresDefault «access plus 1 year» </ filesmatch> </ ifmodule>

15. Стискаємо компоненти сайту шляхом включення Gzip

При використанні Gzip, сервер буде стискати файли перед відправкою їх користувачеві, через що ваш сайт буде завантажуватися швидше.

# Стискаємо компоненти сайту шляхом включення Gzip AddOutputFilterByType DEFLATE text / html text / plain .. .. text / xml application / xml application / xhtml + xml .. .. text / javascript text / css application / x-javascript BrowserMatch ^ Mozilla / 4 gzip-only-text / html BrowserMatch ^ Mozilla / 4.0 [678] no-gzip BrowserMatch bMSIE! no-gzip! gzip-only-text / html

Зверніть увагу, що включення компресії призведе до більшого навантаження на процесор сервера. Тут рядок AddOutputFilterByType записується в одну довгу рядок з двома нижніми (все .. потрібно прибрати).

16. Видаляємо «category» з URL

Щоб відредагувати ярлик yourdomain.com/category/blue на yourdomain.com/blue, просто додайте наступний код в кінці вашого .htaccess файлу.

# Видаляємо category з URL RewriteRule ^ category /(.+)$ http://www.site.com/$1 [R = 301, L]

Не забудьте змінити www.site.com на ваше доменне ім'я.

17. Забороняємо перегляд вмісту папки

Для того, щоб обмежити доступ до тек, які можуть містити різноманітну інформацію і для забезпечення безпеки сервера, додайте цей код в файл .htaccess

# Забороняємо перегляд вмісту папки Options All -Indexes

18. перенаправляє свою RSS-стрічку на FeedBurner

Покажемо як це можна зробити на прикладі RSS -стрічка Drupal на сервіс Google Feedburner.

# Перенаправляє RSS-стрічку Drupal на FeedBurner <ifmodule mod_rewrite.c = ""> RewriteEngine on RewriteCond% {HTTP_USER_AGENT}! FeedBurner [NC] RewriteCond% {HTTP_USER_AGENT}! FeedValidator [NC] RewriteRule ^ rss.xml $ http: // feeds .feedburner.com / yourfeed [R = 302, NC, L] </ ifmodule>

Спочатку необхідно зареєструвати стрічку свого блога в сервісі Feedburner . Далі не забудьте замінити yourfeed на ім'я вашої стрічки вже в Feedburner.

19. Забороняємо коментарі від користувачів без Referrer

Найчастіше спам-боти звертаються безпосередньо до файлу коментарів, наприклад до wp-comments-post.php, не заходячи на сторінки записів вашого блогу. Наведений нижче код дозволяє заблокувати коментарі, надіслані користувачами, які прийшли «з нізвідки», дозволяючи коментувати тільки тим читачам, які перейшли на сторінку вашого блогу з будь-яких інших сторінок (наприклад, результатів пошуку Google).

# Забороняємо коментарі від користувачів без Referrer RewriteEngine On RewriteCond% {REQUEST_METHOD} POST RewriteCond% {REQUEST_URI} .comment \ / reply \ / * RewriteCond% {HTTP_REFERER}!. * Yourblog.com. * [OR] RewriteCond% {HTTP_USER_AGENT} ^ $ RewriteRule (. *) ^ http: //% {REMOTE_ADDR} / $ [R = 301, L]

Не забудьте замінити yourblog.com на доменне ім'я вашого блогу.

20. Прибираємо розширення файлу з URL

Даний код дозволяє видалити розширення файлу .php (ви можете змінити його на будь-яке інше, наприклад - .html) з URL-адрес сторінок.

# Прибираємо розширення файлу з URL RewriteRule ^ (([^ /] + /) * [^.] +) $ /$1.php [L]

21. Захищаємо сайт

Даний код дозволяє захистити сайт від scripts enjection і небажаних модифікацій _REQUEST і / або GLOBALS:

# Включаємо відстеження сім-посилань Options + FollowSymLinks # Запускаємо url_rewriting RewriteEngine On # Блокуємо всі посилання, що містять <script> RewriteCond% {QUERY_STRING} (\ <|% 3C). * Script. * (\> |% 3E) [NC, OR] # Блокуємо всі скрипти, які намагаються змінити змінні PHP Globals: RewriteCond% {QUERY_STRING} GLOBALS (= | \ [| \% [0-9A-Z] {0,2}) [OR] # Блокуємо всі скрипти, які намагаються змінити змінну _REQUEST: RewriteCond% {QUERY_STRING} _REQUEST (= | \ [| \% [0-9A-Z] {0,2}) # перенаправляти всі подібні на сторінку з помилкою 403 - заборонено RewriteRule ^ (. *) $ index.php [F, L]

22. перенаправляє користувача за допомогою директиви RedirectMatch і регулярних виразів

Ще одна корисна директива, рекомендована до використання - RedirectMatch. Цитата: «Ця директива дозволяє в якості запитуваної адреси використовувати регулярний вираз (пересилання не« з документа ", а" з усіх документів, типу ... "). Редирект зовнішній - браузеру повідомляється про необхідність завантажити іншу сторінку.

синтаксис:

RedirectMatch [status] regexp URL

Значення статусів (код повернення веб-сервера) стандартні:

permanent (301 - постійний редирект), temp (302 - тимчасовий редирект, приходьте ще), seeother (303 - летимо туди, там багато смачного), gone (410 - знаходиться на відстані назавжди).

приклад:

Те ж перенаправлення зі старого домену на новий без підключення RewriteEngine:

RedirectMatch 301 ^ (. *) $ Www.domainname.com/$1

Від себе додам, що ви можете використовувати не тільки http-статуси, а й інші умови:

RedirectMatch (. *) \. Gif $ http: //www.myserver.com$1.png RedirectMatch (. * \. Jpg) $ http: //www.myanother.com$1

Обов'язково зробіть резервну копію файлу .htaccess до внесення змін і перевірте працездатність всього сайту - після додавання нових рядків.

23. Захист від прямих посилань для зображень через .htaccess

Хотлінк (Hotlink) - вставка прямих посилань зображень або файлів з одного сайту на інші. Цей прийом використовується досить часто, ну наприклад, у вас на сервері не вистачає місця для зберігання картинок і ви користуєтеся яким-небудь безкоштовним сервісом для зберігання файлів зображень, тобто завантажуєте картинку, отримуєте URL і вставляєте його на свій сайт.

У підсумку: ви зберігаєте місце для вашого сайту і використовуєте пропускну здатність хостингу для картинок, але це вже не ваша справа. Але ось як бути, якщо хтось вирішив, що ваш сайт можна використовувати як подібний сервіс.

Як не стати безкоштовним постачальником зображень і файлів?

Чи є захист від цього? Так є! Щоб заборонити іншим сайтам користуватися вашим трафіком і / або просто вказувати прямі посилання на ваші файли (картинки), то додайте в ваш .htaccess файл наступні рядки:

# Заборонити іншим сайтам використовувати прямі посилання на ваші картинки RewriteCond% {HTTP_REFERER}! ^ $ # Далі список дозволених доменів RewriteCond% {HTTP_REFERER}! ^ Http (s)?: // (www.)? Sitename.ru. * $ [ NC] RewriteCond% {HTTP_REFERER}! ^ http (s)?: // (www.)? sitename.ru: 80. * $ [NC] # IP сайту (домена) RewriteCond% {HTTP_REFERER}! ^ http (s) ?: //111.111.111.111.*$ [NC] RewriteCond% {HTTP_REFERER}! ^ http (s)?: //111.111.111.111: 80. * $ [NC] RewriteCond% {HTTP_REFERER}! ^ http (s) ?: // (www.)? yandex.ru [NC] RewriteCond% {HTTP_REFERER}! ^ http (s)?: // (www.)? google. [NC] # RewriteCond% {HTTP_REFERER}! ^ Http (s)?: // (www.)? Домен_дружественного сайта.ru [NC] RewriteCond% {HTTP_REFERER}! Search? Q = cache [NC] # Формати файлів, для яких встановлюється захист # Виводить помилку 403 # RewriteRule \. (jpe? g | bmp | gif | png | css | mov | swf | dcr | exe | rar | avi | vob | zip | pdf | txt | doc | flv | mp3 | mp4) $ - [NC, F, L] # або показує Спецмалюнок замість зазначеного RewriteRule. * \. (jpe? g | bmp | gif | png) $ files / images / nohotlink.jpg [NC, L]

У підсумку всі інші сайти отримають помилку 403 Forbidden (тобто Доступ заборонений) і ваша пропускна здатність більше «не працює на інших».

24. ImageCache і захист від хотлінк через .htaccess

Для ImageCache попередній пункт працювати не буде, тому додаємо такі настройки:

SetEnvIfNoCase Referer «^ $» local_ref = 1 # Allowed domains # Далі дозволені домени SetEnvIfNoCase Referer «^ http: // (www \.)? Domain \ .ru» local_ref = 1 SetEnvIfNoCase Referer «^ http: // (www \. )? domain \ .com »local_ref = 1 # File extensions that you want to protect # Розширення файлів, які потрібно захистити <FilesMatch" \. (bmp | jpe? g | gif | png) "> Order Allow, Deny Allow from env = local_ref </ FilesMatch>

Тепер у нас є і захист від хотлінк і модуль ImageCache - разом вони працюють чудово. Одне «але» - таким способом, як ви бачите не вийде видавати іншу картинку; тільки захист своїх зображень, що і є основною метою.

25. Мало цього?

Ось кращі і докладні ресурси по магічному .htaccess в Інтернеті:

25 правил .htaccess, які повинен знати кожен web-розробник


Перш ніж ми почнемо, звертаю вашу увагу на той факт, що зловживання використанням .htaccess може привести до зниження продуктивності вашого сайту. Головне правило: використовувати .htaccess для реалізації того чи іншого завдання стоїть тільки в тому випадку, якщо немає інших варіантів.

Переконайтеся в тому, що ви зробили резервну копію оригінального файлу .htaccess для вашого сайту, перш ніж вносити будь-які зміни. Крім того, пам'ятайте - працездатність вказаних нижче правил залежить від індивідуальних налаштувань вашого web-сервера, заданих хостером. Деякі директиви можуть бути заборонені і не працювати.

.htaccess (Від. Англ. Hypertext access) - файл додаткової конфігурації веб-сервера Apache , А також подібних йому серверів. Дозволяє задавати велику кількість додаткових параметрів і дозволів для роботи веб-сервера в окремих каталогах (папках), таких як керований доступ до каталогів, перепризначення типів файлів і т.д., без зміни головного конфігураційного файлу.

Файл .htaccess може бути розміщений в будь-якому каталозі. Директиви цього файлу діють на всі файли в поточному каталозі і у всіх його підкаталогах (якщо ці директиви не перевизначені директивами нижележащих файлів .htaccess).

Для того щоб ці файли .htaccess можна було використовувати, необхідні відповідні налаштування головного конфігураційного файлу (значення директиви AllowOverride має бути встановлено All). Як правило, переважна більшість хостерів дозволяють використовувати свої файли .htaccess.

1. Забороняємо завантаження файлів з зовнішніх сайтів

Вам набридли люди, які розміщують картинки, опубліковані на вашому сайті - на своїх ресурсах, тим самим витрачаючи ваш трафік і створюючи непотрібну навантаження на ваш хостинг? Даний код, розміщений в кінці вашого файлу .htaccess, дозволить запобігти завантаження ваших зображень - сторонніми сайтами.

Options + FollowSymlinks # Забороняємо завантаження файлів з зовнішніх сайтів RewriteEngine On RewriteCond% {HTTP_REFERER}! ^ $ RewriteCond% {HTTP_REFERER}! ^ Http: // (www.)? Site.com/ [nc] RewriteRule. *. (Gif | jpg | png) $ http://site.com/stop.gif[nc]

Не забудьте змінити site.com на ваше доменне ім'я і створити зображення stop.gif, яке буде показано замість запитаної картинки.

2. Блокуємо всі запити від небажаних User Agents

Це правило дозволяє заблокувати небажані User Agent, які можуть бути потенційно небезпечними або просто перевантажувати сервер непотрібними запитами.

# Блокуємо поганих ботів і роботів SetEnvIfNoCase user-Agent ^ FrontPage [NC, OR] SetEnvIfNoCase user-Agent ^ Java. * [NC, OR] SetEnvIfNoCase user-Agent ^ Microsoft.URL [NC, OR] SetEnvIfNoCase user-Agent ^ MSFrontPage [ NC, OR] SetEnvIfNoCase user-Agent ^ Offline.Explorer [NC, OR] SetEnvIfNoCase user-Agent ^ [Ww] eb [Bb] andit [NC, OR] SetEnvIfNoCase user-Agent ^ Zeus [NC] <limit get = "" post = "" head = ""> Order Allow, Deny Allow from all Deny from env = bad_bot </ limit>

Список User Agent браузерів, роботів і павуків пошукових машин, веб-каталогів, менеджерів закачувань, спам-ботів і поганих ботів можна знайти на сайті List of User-Agents .

3. Забороняємо доступ для всіх, крім зазначених IP-адрес

Якщо з якої-небудь причини, ви хочете заборонити всім або дозволити тільки окремим IP-адресами доступ до вашого сайту - додайте цей код в ваш .htaccess файл:

# Забороняємо доступ для всіх, крім зазначених IP-адрес ErrorDocument 403 http://www.domainname.com Order deny, allow Deny from all Allow from 124.34.48.165 Allow from 102.54.68.123

Не забудьте змінити domainname.com на ваше доменне ім'я.

4. Налаштовуємо SEO-Friendly 301 Redirect

Якщо ви перенесли доменне ім'я (або свій підсайт) або хочете перенаправляти користувача на певну сторінку (сторінки), без санкцій з боку пошукових машин, використовуйте цей код:

# Налаштовуємо SEO-Friendly 301 Redirect Redirect 301 /1/file.html http://www.site.com/2/file.html

Не забудьте змінити site.com на ваше доменне ім'я, а /1/file.html і /2/file.html на відповідні директорії і сторінки.

5. Створюємо власні сторінки помилок

Вам набрид стандартний вигляд сторінок помилок? Немає проблем - за допомогою наступного коду, ви легко можете створити свою сторінку і показувати користувачеві саме її:

ErrorDocument 401 /error/401.php ErrorDocument 403 /error/403.php ErrorDocument 404 /error/404.php ErrorDocument 500 /error/500.php

Не забудьте створити в кореневій директорії вашого сервера папку error і розмістити в ній відповідні файли.

6. Створюємо чорний список IP адрес

Втомилися від спам-коментарів або певного користувача? Просто заблокуйте його IP за допомогою наступного коду, який додається в .htaccess файл.

# Створюємо чорний список IP адрес allow from all deny from 145.186.14.122 deny from 124.15.

Дізнатися IP адреси коментаторів можна або в логах Apache або за допомогою сервісів статистики. У багатьох CMS є свої вбудовані засоби для моніторингу адрес відвідувачів. Наприклад, в Drupal IP- адреси коментаторів можна побачити в адміністративній панелі - Звіти.

7. Встановлюємо e-mail адресу за замовчуванням для адміністратора

Використовуйте цей код, для того, щоб встановити e-mail адресу за замовчуванням для адміністратора сервера.

# Встановлюємо e-mail адресу за замовчуванням для адміністратора ServerSignature EMail SetEnv SERVER_ADMIN [email protected]

Не забудьте замінити [email protected] - своїм e-mail адресою.

8. Захищаємо певний файл

Нижченаведений код дозволяє вам заборонити доступ до будь-якого файлу - при запиті буде видаватися помилка 403. Для прикладу я закрив доступ до самого файлу htaccess, підвищивши загальний рівень безпеки сайту.

# Захищаємо .htaccess файл <files .htaccess = ""> order allow, deny deny from all </ files>

9. Стискаємо елементи за допомогою mod_deflate

В якості альтернативи компресії файлів за допомогою Gzip, ви можете використовувати mod_deflate (імовірно працює швидше). Додайте наступний код на початку вашого файлу .htaccess (також ви можете додати перерахування .jpg | .gif | .png | .tiff | .ico ):

# Стискаємо елементи за допомогою mod_deflate <ifmodule mod_deflate.c = ""> <filesmatch. (Js | css) $ = ""> SetOutputFilter DEFLATE </ filesmatch> </ ifmodule>

10. Додаємо термін життя в заголовки

Даний код дозволяє додати терміни життя в заголовки:

# Додаємо термін життя в заголовки <filesmatch. (Ico | pdf | flv | jpg | jpeg | png | gif | swf) $ = ""> Header set Expires «Wed, 21 May 2010 20:00:00 GMT» </ filesmatch >

11. Встановлюємо сторінки за замовчуванням

Зазвичай сторінкою за замовчуванням є index.html, однак за допомогою цього коду ви можете налаштувати за замовчуванням будь-яку іншу сторінку.

# Встановлюємо альтернативну сторінку за замовчуванням DirectoryIndex about.html

12. Захищаємо паролем папки і файли

Ви можете включити перевірку пароля для доступу в будь-яку папку або файл на вашому сервері, використовуючи цей код:

# Захист паролем файлу <files secure.php = ""> AuthType Basic AuthName «Prompt» AuthUserFile /pub/home/.htpasswd Require valid-user </ files> # захист паролем папки resides AuthType basic AuthName «This directory is protected» AuthUserFile /pub/home/.htpasswd AuthGroupFile / dev / null Require valid-user

Для того, щоб організувати доступ до файлу за паролем, необхідно створити файл .htpasswd і внести в нього пару логін-пароль в форматі user: password.

Однак в цьому випадку паролі будуть зберігається у відкритому вигляді, що не дуже добре з точки зору безпеки. Тому оптимальніше пароль зашифрувати. Для цього скористайтеся сервісами генерації записів в файли .htpasswd. наприклад, ось таким .

У нашому прикладі файл з паролями доступу лежить в кореневій директорії сайту і називається .htpasswd. Директорія вказується від кореня сервера і якщо шлях буде некоректним - Apache, не отримавши доступу до файлу, відмовить в доступі до папки будь-якому користувачеві - в тому чілсе і тому, який ввів правильну пару логін: пароль.

13. перенаправляє зі старого домену - на новий

Використовуючи .htaccess, ви можете налаштувати перенаправлення зі старого доменного імені на нове, додавши наступний код:

# Перенаправляє зі старого домену old.com - на новий RewriteEngine On RewriteRule ^ (. *) $ Http://www.new.com/$1 [R = 301, L]

Перенаправлення використовується в тому випадку, якщо ви переносите свій існуючий сайт на нове доменне ім'я. У цьому випадку будь-який користувач, який набере в адресному рядку www.old.com - буде перенаправлений на www.new.com.

14. Підсилюємо кешування

Використання цього правила не означає пряме прискорення завантаження вашого сайту. Воно призначене для більш швидкого завантаження сайту - для вже заходив на нього відвідувача, шляхом відправки статусу 304 для тих елементів, що не оновлювалися.

Таким чином, при повторному завантаженні сторінки браузер відвідувача не буде заново завантажувати зображення, скрипти або CSS, а виведе ті файли, які вже зберігаються в його кеші. Ви можете змінити термін життя кеша, шляхом коригування його значення в роках (year), місяцях (month) або, наприклад - секундах (seconds). У прикладі вказано 1 рік.

# Підсилюємо кешування FileETag MTime Size <ifmodule mod_expires.c> <filesmatch ". (Jpg | gif | png | css | js) $"> ExpiresActive on ExpiresDefault «access plus 1 year» </ filesmatch> </ ifmodule>

15. Стискаємо компоненти сайту шляхом включення Gzip

При використанні Gzip, сервер буде стискати файли перед відправкою їх користувачеві, через що ваш сайт буде завантажуватися швидше.

# Стискаємо компоненти сайту шляхом включення Gzip AddOutputFilterByType DEFLATE text / html text / plain .. .. text / xml application / xml application / xhtml + xml .. .. text / javascript text / css application / x-javascript BrowserMatch ^ Mozilla / 4 gzip-only-text / html BrowserMatch ^ Mozilla / 4.0 [678] no-gzip BrowserMatch bMSIE! no-gzip! gzip-only-text / html

Зверніть увагу, що включення компресії призведе до більшого навантаження на процесор сервера. Тут рядок AddOutputFilterByType записується в одну довгу рядок з двома нижніми (все .. потрібно прибрати).

16. Видаляємо «category» з URL

Щоб відредагувати ярлик yourdomain.com/category/blue на yourdomain.com/blue, просто додайте наступний код в кінці вашого .htaccess файлу.

# Видаляємо category з URL RewriteRule ^ category /(.+)$ http://www.site.com/$1 [R = 301, L]

Не забудьте змінити www.site.com на ваше доменне ім'я.

17. Забороняємо перегляд вмісту папки

Для того, щоб обмежити доступ до тек, які можуть містити різноманітну інформацію і для забезпечення безпеки сервера, додайте цей код в файл .htaccess

# Забороняємо перегляд вмісту папки Options All -Indexes

18. перенаправляє свою RSS-стрічку на FeedBurner

Покажемо як це можна зробити на прикладі RSS -стрічка Drupal на сервіс Google Feedburner.

# Перенаправляє RSS-стрічку Drupal на FeedBurner <ifmodule mod_rewrite.c = ""> RewriteEngine on RewriteCond% {HTTP_USER_AGENT}! FeedBurner [NC] RewriteCond% {HTTP_USER_AGENT}! FeedValidator [NC] RewriteRule ^ rss.xml $ http: // feeds .feedburner.com / yourfeed [R = 302, NC, L] </ ifmodule>

Спочатку необхідно зареєструвати стрічку свого блога в сервісі Feedburner . Далі не забудьте замінити yourfeed на ім'я вашої стрічки вже в Feedburner.

19. Забороняємо коментарі від користувачів без Referrer

Найчастіше спам-боти звертаються безпосередньо до файлу коментарів, наприклад до wp-comments-post.php, не заходячи на сторінки записів вашого блогу. Наведений нижче код дозволяє заблокувати коментарі, надіслані користувачами, які прийшли «з нізвідки», дозволяючи коментувати тільки тим читачам, які перейшли на сторінку вашого блогу з будь-яких інших сторінок (наприклад, результатів пошуку Google).

# Забороняємо коментарі від користувачів без Referrer RewriteEngine On RewriteCond% {REQUEST_METHOD} POST RewriteCond% {REQUEST_URI} .comment \ / reply \ / * RewriteCond% {HTTP_REFERER}!. * Yourblog.com. * [OR] RewriteCond% {HTTP_USER_AGENT} ^ $ RewriteRule (. *) ^ http: //% {REMOTE_ADDR} / $ [R = 301, L]

Не забудьте замінити yourblog.com на доменне ім'я вашого блогу.

20. Прибираємо розширення файлу з URL

Даний код дозволяє видалити розширення файлу .php (ви можете змінити його на будь-яке інше, наприклад - .html) з URL-адрес сторінок.

# Прибираємо розширення файлу з URL RewriteRule ^ (([^ /] + /) * [^.] +) $ /$1.php [L]

21. Захищаємо сайт

Даний код дозволяє захистити сайт від scripts enjection і небажаних модифікацій _REQUEST і / або GLOBALS:

# Включаємо відстеження сім-посилань Options + FollowSymLinks # Запускаємо url_rewriting RewriteEngine On # Блокуємо всі посилання, що містять <script> RewriteCond% {QUERY_STRING} (\ <|% 3C). * Script. * (\> |% 3E) [NC, OR] # Блокуємо всі скрипти, які намагаються змінити змінні PHP Globals: RewriteCond% {QUERY_STRING} GLOBALS (= | \ [| \% [0-9A-Z] {0,2}) [OR] # Блокуємо всі скрипти, які намагаються змінити змінну _REQUEST: RewriteCond% {QUERY_STRING} _REQUEST (= | \ [| \% [0-9A-Z] {0,2}) # перенаправляти всі подібні на сторінку з помилкою 403 - заборонено RewriteRule ^ (. *) $ index.php [F, L]

22. перенаправляє користувача за допомогою директиви RedirectMatch і регулярних виразів

Ще одна корисна директива, рекомендована до використання - RedirectMatch. Цитата: «Ця директива дозволяє в якості запитуваної адреси використовувати регулярний вираз (пересилання не« з документа ", а" з усіх документів, типу ... "). Редирект зовнішній - браузеру повідомляється про необхідність завантажити іншу сторінку.

синтаксис:

RedirectMatch [status] regexp URL

Значення статусів (код повернення веб-сервера) стандартні:

permanent (301 - постійний редирект), temp (302 - тимчасовий редирект, приходьте ще), seeother (303 - летимо туди, там багато смачного), gone (410 - знаходиться на відстані назавжди).

приклад:

Те ж перенаправлення зі старого домену на новий без підключення RewriteEngine:

RedirectMatch 301 ^ (. *) $ Www.domainname.com/$1

Від себе додам, що ви можете використовувати не тільки http-статуси, а й інші умови:

RedirectMatch (. *) \. Gif $ http: //www.myserver.com$1.png RedirectMatch (. * \. Jpg) $ http: //www.myanother.com$1

Обов'язково зробіть резервну копію файлу .htaccess до внесення змін і перевірте працездатність всього сайту - після додавання нових рядків.

23. Захист від прямих посилань для зображень через .htaccess

Хотлінк (Hotlink) - вставка прямих посилань зображень або файлів з одного сайту на інші. Цей прийом використовується досить часто, ну наприклад, у вас на сервері не вистачає місця для зберігання картинок і ви користуєтеся яким-небудь безкоштовним сервісом для зберігання файлів зображень, тобто завантажуєте картинку, отримуєте URL і вставляєте його на свій сайт.

У підсумку: ви зберігаєте місце для вашого сайту і використовуєте пропускну здатність хостингу для картинок, але це вже не ваша справа. Але ось як бути, якщо хтось вирішив, що ваш сайт можна використовувати як подібний сервіс.

Як не стати безкоштовним постачальником зображень і файлів?

Чи є захист від цього? Так є! Щоб заборонити іншим сайтам користуватися вашим трафіком і / або просто вказувати прямі посилання на ваші файли (картинки), то додайте в ваш .htaccess файл наступні рядки:

# Заборонити іншим сайтам використовувати прямі посилання на ваші картинки RewriteCond% {HTTP_REFERER}! ^ $ # Далі список дозволених доменів RewriteCond% {HTTP_REFERER}! ^ Http (s)?: // (www.)? Sitename.ru. * $ [ NC] RewriteCond% {HTTP_REFERER}! ^ http (s)?: // (www.)? sitename.ru: 80. * $ [NC] # IP сайту (домена) RewriteCond% {HTTP_REFERER}! ^ http (s) ?: //111.111.111.111.*$ [NC] RewriteCond% {HTTP_REFERER}! ^ http (s)?: //111.111.111.111: 80. * $ [NC] RewriteCond% {HTTP_REFERER}! ^ http (s) ?: // (www.)? yandex.ru [NC] RewriteCond% {HTTP_REFERER}! ^ http (s)?: // (www.)? google. [NC] # RewriteCond% {HTTP_REFERER}! ^ Http (s)?: // (www.)? Домен_дружественного сайта.ru [NC] RewriteCond% {HTTP_REFERER}! Search? Q = cache [NC] # Формати файлів, для яких встановлюється захист # Виводить помилку 403 # RewriteRule \. (jpe? g | bmp | gif | png | css | mov | swf | dcr | exe | rar | avi | vob | zip | pdf | txt | doc | flv | mp3 | mp4) $ - [NC, F, L] # або показує Спецмалюнок замість зазначеного RewriteRule. * \. (jpe? g | bmp | gif | png) $ files / images / nohotlink.jpg [NC, L]

У підсумку всі інші сайти отримають помилку 403 Forbidden (тобто Доступ заборонений) і ваша пропускна здатність більше «не працює на інших».

24. ImageCache і захист від хотлінк через .htaccess

Для ImageCache попередній пункт працювати не буде, тому додаємо такі настройки:

SetEnvIfNoCase Referer «^ $» local_ref = 1 # Allowed domains # Далі дозволені домени SetEnvIfNoCase Referer «^ http: // (www \.)? Domain \ .ru» local_ref = 1 SetEnvIfNoCase Referer «^ http: // (www \. )? domain \ .com »local_ref = 1 # File extensions that you want to protect # Розширення файлів, які потрібно захистити <FilesMatch" \. (bmp | jpe? g | gif | png) "> Order Allow, Deny Allow from env = local_ref </ FilesMatch>

Тепер у нас є і захист від хотлінк і модуль ImageCache - разом вони працюють чудово. Одне «але» - таким способом, як ви бачите не вийде видавати іншу картинку; тільки захист своїх зображень, що і є основною метою.

25. Мало цього?

Ось кращі і докладні ресурси по магічному .htaccess в Інтернеті:

25. Мало цього?
25. Мало цього?
25. Мало цього?
Http: // (www.)?
Як не стати безкоштовним постачальником зображень і файлів?
Чи є захист від цього?
Http (s)?
Http (s)?
Http (s) ?
Http (s)?
Навигация сайта
Реклама
Панель управления
Календарь новостей
Популярные новости
Информация
Экономика стран www.mp3area.ru © 2005-2016
При копировании материала, ссылка на сайт обязательна.