Для тестування регулярних виразів можна скористатися www.regex101.com
Order allow, deny
AuthType Basic
AuthUserFile /var/www/html/.htpasswd
AuthGroupFile / dev / null
AuthName "Enter username / password"
Require valid-user
Satisfy any
Deny from all
можна використовувати одне з умов RewriteCond.
5. Prevent hotlinking (заборонити використання об'єктів з вашого сайту іншими сайтами)
Якщо хтось використовує ресурс або об'єкт з вашого сайту, то трафік генерується для чужого профіту. Якщо Вас це напружує - забороніть використання Вашого контенту такими рядками в .htaccess файл:
#Replace? Mysite \ .com / with your blog url
RewriteCond%! (. *)? Your-site \ .com (. *) [NC]
# Не забуваємо виключити трафік з пошукових машин
RewriteCond%! (. *) (Google | bing | yandex | ask.com | duckduckgo | yahoo | lycos | dogpile | search) (. *) [NC]
RewriteCond%! ^ $
#Replace /images/nohotlink.jpg with your "do not hotlink" image url
RewriteRule. * \. (Jpe? G | gif | bmp | png | другіе_тіпи_файлов) $ /images/nohotlink.jpg [L]
Можна настворювала різних файлів (jpg / txt / html) з повідомленням: "Я краду чужий контент", і додати RewriteRule'ов для кожного типу файлів.
6. Заблокувати відвідувачів, які прийшли з певного домену рядками в .htaccess:
RewriteEngine onRewriteCond% bannedurl1.com [NC, OR]
RewriteCond% bannedurl2.com [NC, OR]
RewriteRule. * - [F]
7. Призначити нестандартні сторінки помилок .htaccess:
ErrorDocument 400 /error/HTTP_BAD_REQUEST.html
ErrorDocument 404 /error/HTTP_NOT_FOUND.html
ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html
ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html
8. Сховати розширення файлів через .htaccess:
Ця інформація може бути корисна хіба що Вам і розробникам. Звичайним смертним нема чого бачити розширення файлів на вашому сайті:
RewriteEngine on
RewriteCond%! -d
RewriteCond% \ .custom_ext -f
RewriteRule ^ (. *) $ $ 1.custom_ext
custom_ext можна замінити на що завгодно.
#Off:
Options -Indexes
#On:
Options + Indexes
До речі, такі опції як ExecCgi і FollowSymLinks теж можна включати в .htaccess. відповідно:
#On:
Options Indexes ExecCgi FollowSymLinks
10. Стиснення файлів .htaccess:
11. Поставити кодування для певних файлів використовуючи .htaccess:
AddDefaultCharset UTF-8
12. Кешування файлів на стороні клієнта:
Ваші відвідувачам не за ніж кожен раз запитувати весь медіа контент при переході по сторінках Вашого сайту. Цей контент можна зберігати на стороні клієнта у тимчасовому сховищі. Змусити браузери Ваших відвідувачів тримати ці файли можна наступною конструкцією в .htaccess:
max-age вказується в секундах.
13. Заборонити доступ для певних браузерів (UserAgents)
Подивилися логи доступу до сайту і побачили дивний наплив запитів з використанням якогось незрозумілого UserAgent'а. Будьте впевнені вас Парс, грабують або тупо кладуть сайт, збільшуючи навантаження. Можна заборонити доступ до сайту виходячи з інформації про UserAgent:
RewriteEngine On
RewriteBase /
SetEnvIfNoCase Referer "^ $" bad_user
SetEnvIfNoCase User-Agent "^ badbot1" bad_user
SetEnvIfNoCase User-Agent "^ badbot2" bad_user
SetEnvIfNoCase User-Agent "^ badbot3" bad_user
Order allow, deny
Deny from env = bad_user
14. Примусова завантаження файлів.
У моїх нотатках давно була ця запис і одного разу в нагоді, коли потрібно було зробити так що б сайт пропонував завантажити pdf файли замість того, що б відкривати їх за допомогою pdf плагіна браузера:
ForceType application / octet-stream
Header set Content-Disposition attachment
ForceType application / octet-stream
Header set Content-Disposition attachment
15. Примусова завантаження файлів в залежності від браузера:
На додаток до пункту №7, мені потрібно було змусити сайт пропонувати завантажувати pdf файл, якщо клієнт використовує InternetExplorer:
BrowserMatch ". * MSIE. *" Ie
Header set Content-Disposition attachment env = ie
17. Так само в .htaccess можна включити окремий css для відвідувачів використовують InternetExplorer:
BrowserMatch ". * MSIE. *" Ie
RewriteCond% = 1
RewriteRule ^. * Default_style.css $ /path_to_folder/style_for_ie.css [L]
18. Обробка файлів складаються з англійських (не росіян) символів
RewriteEngine On
RewriteCond% -f
RewriteCond% ^ /? (. *) / ([A-zA-Z]) + \. (Gif | jpeg | jpg | png) $
RewriteRule ^ (. *) $ /куда-то_там.php [QSA, NC]
19. Використання X-Forwarded-For:
RewriteEngine OnRewriteCond%! 100 \ .100 \ .100 \ .100 [NC]
RewriteRule ^ (. *) $ /some_page.html [R = 302, L]
20. Робимо браузери нечутливими до регістру в іменах файлів:
RewriteRule [A-Z] - [E = HASCAPS: TRUE, S = 1]
RewriteRule! [A-Z] - [S = 28]
RewriteRule [A-Z] - [N]
RewriteEngine On
RewriteCond% ^ 12 \ .34 \ .56 \ .78 $
RewriteRule. * - [F]
22. Створення довільного заголовка
Header add TimeTaken "It took. Ms to serve this request"
Header add ServerName% e
Header add ServerAddr% e
В Ubuntu не забудьте включити mod_headers інакше фокус не вийде, а сайт ляже з 500-ї помилкою:
sudo a2enmod headers
23. Використання QUERY_STRING
Це заслуговує на окрему увагу. Іноді буває потрібно налаштувати редирект для наступної сторінки:
Очевидним є загнати все, після імені домену в%. але таке правило не спрацює. Голову зламав сьогодні, поки дійшло, що після. починається%
RewriteEngine On
RewriteCond% ^ / somescript.php $
RewriteCond% ^ \ var1 = (. *) \ Var2 = (. *)
RewriteRule ^ (. *) $ /% 1 /% 2 [R, L]
Зверніть увагу, що для позначення значень (val1 і val2) використовуються% 1 і% 2 (а не $ 1 і $ 2).
(Visited 819 times, 1 visits today)