-
Notifications
You must be signed in to change notification settings - Fork 44
/
Copy path.htaccess
523 lines (475 loc) · 25.4 KB
/
.htaccess
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
# Этот .htaccess поможет сделать ваш сайт быстрей.
# Пользуйтесь на здоровье себе и вашему сайту.
# Автор: Александр Белов aka alex Roosso
# Сайт: http://www.black-web.ru
# ICQ: 3405729
# Электропочта: [email protected]
Options All -ExecCGI -Indexes -Includes +FollowSymLinks
#Options -MultiViews
# REWRITE ___________________
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^roocms
RewriteRule (.*) http://www.roocms.com/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://www.roocms.com/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]
</IfModule>
# REDIRICT __________________
# 301 простой редерикт
# Redirect 301 /index.html /index.php
# Перенаправояем с index.html на index.php
# Redirect / http://www.roocms.com
# http://www.roocms.com - URL На который мы перенаправляем запросы
# Полезно в случаях когда надо полностью перенаправлять людей с одного сайта на другой.
# Но "грубо" потому что с любого адреса старого сайта, пользователя будет приземлять на главную новго. В случае переезда, лучше все же использовать RewriteRule
# Redirect 410 /index.html
# Если страница удалена, сообщим поисковику.
<IfModule mod_rewrite.c>
# RewriteRule ^news/([^/\.]+)/?$ news.php?news=$1 [L]
# RewriteRule ^(.*\.((js)|(css)))$ plugin/GzipFile.php?file=$1 [QSA,NE,L]
# RewriteRule \.css$ plugin/GzipFile.php?file=$1
# RewriteRule \.js$ plugin/GzipFile.php?file=$1
# Круглые скобки () используются для выделения групп символов. В дальнейшем к ним можно обращаться по номеру.
# Символ ^ обозначает начало строки.
# Символ $ обозначает конец строки.
# Символ . обозначает любой символ.
# Символ | обозначает альтернативу. Например, выражения "A|B" означают "A или B".
# Символ ? ставится после символа (группы), который может как присутствовать, так и отсутствовать.
# Символ * ставится после символа (группы), который может отсутствовать или присутствовать неограниченное число раз подряд.
# Символ + действует аналогично символу * с той лишь разницей, что предшествующий ему символ обязательно должен присутствовать хотя бы один раз.
# Квадратные скобки [] используются для перечисления допустимых символов.
# Квадратные скобки [^] используются для перечисления недоступных символов.
# Символ \ ставится перед спецсимволами, если они нужны в своем первозданном виде.
# Все, что расположено после символа '#', считается комментарием.
</IfModule>
# RedirectMatch 301 /blog(.*) http://www.roocms.com/blog$1
# SECURE ____________________
<IfModule mod_ssl.c>
# SSLOptions +StrictRequire
# SSLRequireSSL
# SSLRequire %{HTTP_HOST} eq "iblog.su"
</IfModule>
<IfModule mod_rewrite.c>
# RewriteCond %{HTTPS} !on
# RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
# RewriteCond %{SERVER_PORT} !^443
# RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# $n - (0 <= n <= 9) предоставляющие доступ к сгруппированным частям (в круглых скобках!) шаблона из соответствующей директивы RewriteRule (единственной, следующей сразу за текущим набором директив RewriteCond).
# %n - (1 <= n <= 9) предоставляющие доступ к сгруппированным частям (в круглых скобках!) шаблона из соответствующей директивы RewriteCond в текущем наборе условий.
# %{NAME_OF_VARIABLE} - где NAME_OF_VARIABLE может быть одной из ниже приведенных переменных
# HTTP_USER_AGENT Содержит информацию о типе и версии браузера и операционной системы посетителя.
# HTTP_REFERER Приводится адрес страницы, с которой посетитель пришёл на данную страницу.
# HTTP_COOKIE Список COOKIE, передаваемых браузером
# HTTP_FORWARDED Страница непосредственно, с которой перешел пользователь
# HTTP_HOST Адрес сервера, например, roocms.com
# HTTP_ACCEPT Описываются предпочтения клиента относительно типа документа.
# REMOTE_ADDR IP-адрес посетителя.
# REMOTE_HOST адрес посетителя в нормальной форме — например, 23.beeline.ru
# REMOTE_IDENT Имя удаленного пользователя. Имеет формат имя.хост, например, starter.www.rutt.net.ru
# REMOTE_USER Тоже, что и REMOTE_IDENT, но содержит только имя. Пример: starter
# REQUEST_METHOD Позволяет определить тип запроса (GET или POST). Должен обязательно анализироваться, т.к. определяет дальнейший способ обработки информации
# SCRIPT_FILENAME Полный путь к веб-странице на сервере.
# PATH_INFO Содержит в себе все, что передавалось в скрипт.
# QUERY_STRING Содержит строчку, переданную в качестве запроса при вызове CGI скрипта.
# AUTH_TYPE Используется для идентификации пользователя
# DOCUMENT_ROOT Cодержит путь к корневой директории сервера.
# SERVER_ADMIN Почтовый адрес владельца сервера, указанный при установке.
# SERVER_NAME Адрес сервера, типа idea.roocms.com
# SERVER_ADDR IP-адрес вашего сайта.
# SERVER_PORT Порт, на котором работает Apache.
# SERVER_PROTOCOL Версия HTTP протокола.
# SERVER_SOFTWARE Название сервера, например, Apache/1.3.2 (Unix)
# TIME_YEAR TIME_MON TIME_DAY TIME_HOUR TIME_MIN TIME_SEC TIME_WDAY TIME
# Переменные предназначены для работы со временем в разных форматах.
# API_VERSION Это версия API модуля Apache (внутренний интерфейс между сервером и модулем) в текущей сборке сервера, что определено в include/ap_mmn.h.
# THE_REQUEST Полная строка HTTP запроса отправленная браузером серверу (т.е., «GET /index.html HTTP/1.1»). Она не включает какие-либо дополнительные заголовки отправляемые браузером.
# REQUEST_URI Ресурс, запрошенный в строке HTTP запроса.
# REQUEST_FILENAME Полный путь в файловой системе сервера к файлу или скрипту соответствующим этому запросу.
# IS_SUBREQ Будет содержать текст «true» если запрос выполняется в текущий момент как подзапрос, «false» в другом случае. Подзапросы могут быть сгенерированы модулями которым нужно иметь дело с дополнительными файлами или URI для того чтобы выполнить собственные задачи.
# Внимание!
# Данная конфигурация файла может порождать побочные запросы к индексному файлу вашего сайта
# в случаях когда в вашей верстке или скриптах содержаться ошибки или ссылки на несуществующие файлы или папки.
# Подобные обращения в большом числе могут вызвать нагрузку на ваш веб сервер. 1 ошибка = 1 лишнему обращению.
# Будьте внимательны. Перед использованием данного файла проверьте файлы access.log и error.log сгенерированные вашим Apache сервером.
# Если вы обнуружите ошибки в ваших скриптах, исправьте их перед использованием на "боевом сервере"
# Блокировать любой запрос, пытающийся испортить base64_encode через URL
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
# Блокировать любой запрос, содержащий тег <script> в URL
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
# Блокировать любой запрос, содержащий тег <iframe> в URL
RewriteCond %{QUERY_STRING} (<|%3C).*iframe.*(>|%3E) [NC,OR]
# Блокировать любой запрос, содержащий jacascript в URL
RewriteCond %{QUERY_STRING} (javascript:).*(;).* [NC]
# Блокировать любой запрос, содержащий попытку инъекции БД в URL
RewriteCond %{QUERY_STRING} (;|'|"|%22).*(union|select|insert|drop|update|md5|benchmark|or|and|if).* [NC]
# Блокировать любой запрос, пытающийся установить значение глобальных переменных PHP через URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Блокировать любой запрос, пытающийся изменить _REQUEST переменную через URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Перенаправлять заблокированные запросы
RewriteRule .* index.php [F]
# и запрошенный путь не соответствует пути к физическому файлу
RewriteCond %{REQUEST_FILENAME} !-f
# и запрошенный путь не соответствует пути к физической папке
RewriteCond %{REQUEST_FILENAME} !-d
# то перенаправить запрос на скрипт index.php
RewriteRule .* index.php [L]
RedirectMatch 301 regexp /error410.html
</IfModule>
# HOTLINKING ________________
<IfModule mod_rewrite.c>
# RewriteCond %{HTTP_REFERER} !^$
# RewriteCond %{HTTP_REFERER} !^http://([ -a-z0-9] \.)?ibog\.su [NC]
# RewriteRule \.(gif|jpe?g|png)$ - [F,NC,L]
</IfModule>
# HANDLER ___________________
<IfModule mod_mime.c>
AddHandler application/x-httpd-php .html
AddHandler cgi-script .pl .py .jsp .asp .htm .shtml .sh .cgi
AddType application/x-javascript .js
AddType application/json .json
AddType text/css .css
AddType text/xml .xml
# Audio
AddType audio/ogg .oga .ogg
AddType audio/mp4 .m4a .f4a .f4b
# Video
AddType video/ogg .ogv
AddType video/mp4 .mp4 .m4v .f4v .f4p
AddType video/webm .webm
AddType video/x-flv .flv
# SVG
AddType image/svg+xml .svg .svgz
AddEncoding gzip .svgz
# Webfonts
AddType application/vnd.ms-fontobject .eot
AddType application/x-font-ttf .ttf .ttc
AddType application/x-font-woff .woff
AddType application/x-font-woff2 .woff2
AddType font/opentype .otf
AddType font/ttf .ttf
AddType font/eot .eot
AddType font/woff .woff
AddType font/woff2 .woff2
# Assorted types
AddType image/x-icon .ico
AddType image/webp .webp
AddType text/cache-manifest .appcache .manifest
AddType text/x-component .htc
AddType application/xml rss atom xml .rdf
AddType application/x-chrome-extension .crx
AddType application/x-opera-extension .oex
AddType application/x-xpinstall .xpi
AddType application/octet-stream .safariextz
AddType application/x-web-app-manifest+json .webapp
AddType text/x-vcard .vcf
AddType application/x-shockwave-flash .swf
AddType text/vtt .vtt
# AddType application/octet-stream .doc .mov .avi .pdf .xls .rar .zip .mp3 .wmv .ppt .tar .gz .docx .xlsx
# ForceType application/x-httpd-php
</IfModule>
# INDEX FILE ________________
DirectoryIndex index.php
# GZIP ______________________
<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text\.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_include mime ^application/x-font-woff.*
mod_gzip_item_include mime ^application/x-font-woff2.*
mod_gzip_item_exclude mime ^image\.*
mod_gzip_item_exclude mime ^font\.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>
<ifModule mod_deflate.c>
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-font-woff
AddOutputFilterByType DEFLATE application/x-font-woff2
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE font/woff
AddOutputFilterByType DEFLATE font/woff2
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE image/jpg
AddOutputFilterByType DEFLATE image/jpeg
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
</ifModule>
# PHP _______________________
php_value upload_max_filesize 32M
php_value post_max_size 10M
php_value default_charset utf-8
php_flag magic_quotes_gpc Off
php_flag register_globals Off
php_flag short_open_tag On
# php_flag display_errors on
# php_value max_input_time 200
# php_value session.name sid
php_value error_reporting 0
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
php_flag log_errors off
php_flag ignore_repeated_errors on
php_flag ignore_repeated_source on
# php_value log_errors_max_len 1024
php_flag report_memleaks off
php_flag track_errors off
php_value docref_root 0
php_value docref_ext 0
# php_value error_log /tmp/php_error.log
# php_value error_prepend_string " "
# php_value error_append_string " "
<Files php_error.log>
Order allow,deny
Deny from all
Satisfy All
</Files>
# With Apache 2.4 the "Order, Deny" syntax has been deprecated and moved from
# module mod_authz_host to a new module called mod_access_compat (which may be
# disabled) and a new "Require" syntax has been introduced to mod_authz_host.
<IfModule mod_version.c>
<IfVersion < 2.4>
<Files "php_error.log">
Order Allow,Deny
Deny from All
Satisfy All
</Files>
</IfVersion>
<IfVersion >= 2.4>
<Files "php_error.log">
Require all denied
</Files>
</IfVersion>
</IfModule>
<IfModule !mod_version.c>
<IfModule !mod_authz_core.c>
<Files "php_error.log">
Order Allow,Deny
Deny from All
Satisfy All
</Files>
</IfModule>
<IfModule mod_authz_core.c>
<Files "php_error.log">
Require all denied
</Files>
</IfModule>
</IfModule>
<IfModule php5_module>
# php_value session.cookie_httponly true
</IfModule>
# XDEBUG ___________________
# Настройки для расширения XDebug
#php_flag xdebug.profiler_enable On
#php_flag xdebug.extended_info On
#php_flag xdebug.remote_enable off
#php_flag xdebug.auto_trace off
# OTHER SETTINGS ____________
<IfModule mod_setenvif.c>
SetEnv TZ Europe/Moscow
</IfModule>
ServerSignature Off
# AddDefaultCharset UTF-8
# AddCharset utf-8 .atom .css .js .json .rss .vtt .xml
# CACHE AND Headers _________
<IfModule mod_headers.c>
#кэшировать html и htm файлы на один день
<FilesMatch "\.(html|htm)$">
Header set Cache-Control "max-age=43200"
</FilesMatch>
#кэшировать css, javascript и текстовые файлы на одну неделю
<FilesMatch "\.(js|css|txt)$">
Header set Cache-Control "max-age=604800"
</FilesMatch>
#кэшировать флэш и изображения на месяц
<FilesMatch "\.(flv|swf|ico|gif|jpg|jpeg|png|jpe?g)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>
#отключить кэширование
<FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
#Header unset Cache-Control
</FilesMatch>
<FilesMatch "\.(ttf|ttc|otf|eot|woff|woff2|font.css)$">
#Header set Access-Control-Allow-Origin "*"
</FilesMatch>
<FilesMatch "\.(js|css|gif|png|jpe?g|pdf|xml|oga|ogg|m4a|ogv|mp4|m4v|webm|svg|svgz|eot|ttf|otf|woff|woff2|ico|webp|appcache|manifest|htc|crx|oex|xpi|safariextz|vcf)$" >
#Header unset X-UA-Compatible
</FilesMatch>
</IfModule>
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 5 seconds"
ExpiresByType image/x-icon "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
ExpiresByType video/ogg "access plus 1 month"
ExpiresByType audio/ogg "access plus 1 month"
ExpiresByType video/mp4 "access plus 1 month"
ExpiresByType video/webm "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 604800 seconds"
ExpiresByType application/javascript "access plus 604800 seconds"
ExpiresByType application/x-javascript "access plus 604800 seconds"
ExpiresByType text/html "access plus 43200 seconds"
ExpiresByType application/xhtml+xml "access plus 600 seconds"
ExpiresByType text/xml "access plus 600 seconds"
ExpiresByType application/xml "access plus 600 seconds"
ExpiresByType application/json "access plus 600 seconds"
ExpiresByType application/rss+xml "access plus 1 hour"
ExpiresByType application/atom+xml "access plus 1 hour"
ExpiresByType text/x-component "access plus 1 week"
ExpiresByType application/x-font-ttf "access plus 1 month"
ExpiresByType font/opentype "access plus 1 month"
ExpiresByType application/x-font-woff "access plus 1 month"
ExpiresByType application/x-font-woff2 "access plus 1 month"
ExpiresByType font/opentype "access plus 1 month"
ExpiresByType font/eot "access plus 1 month"
ExpiresByType font/ttf "access plus 1 month"
ExpiresByType font/woff "access plus 1 month"
ExpiresByType font/woff2 "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
</IfModule>
# anti traffic
#<IfModule mod_rewrite.c>
# RewriteEngine On
# RewriteCond %{REQUEST_URI} !^/403.php$
# RewriteCond %{HTTP_USER_AGENT} .*Slurp.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*Ask\sJeeves.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*HP\sWeb\sPrintSmart.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*HTTrack.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*IDBot.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*Indy\sLibrary.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*ListChecker.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*MSIECrawler.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*NetCache.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*Nutch.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*RPT-HTTPClient.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*rulinki\.ru.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*Twiceler.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*WebAlta.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*Webster\sPro.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*www\.cys\.ru.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*Wysigot.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*Yeti.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*Accoona.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*CazoodleBot.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*CFNetwork.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*ConveraCrawler.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*DISCo.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*Download\sMaster.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*FAST\sMetaWeb\sCrawler.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*Flexum\sspider$ [OR]
# RewriteCond %{HTTP_USER_AGENT} .*Gigabot.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*HTMLParser.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*ia_archiver.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*ichiro.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*IRLbot.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*Java.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*km\.ru\sbot$ [OR]
# RewriteCond %{HTTP_USER_AGENT} .*kmSearchBot.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*libwww-perl.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*Lupa\.ru.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*LWP::Simple.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*lwp-trivial.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*Missigua.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*MJ12bot.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*msnbot.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*msnbot-media.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*Offline\sExplorer.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*OmniExplorer_Bot.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*PEAR.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*psbot.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*Python.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*rulinki\.ru.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*SMILE.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*Speedy.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*Teleport\sPro.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*TurtleScanner.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*voyager.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*Webalta.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*WebCopier.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*WebData.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*WebZIP.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*Wget.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*Yanga.* [OR]
# RewriteCond %{HTTP_USER_AGENT} .*Yeti.*
# RewriteRule .* /index.php?page=e403 [F]
#<IfModule>
# Bad Rquest
ErrorDocument 400 /index.php?page=e400
# Authorization Required
ErrorDocument 401 /index.php?page=e401
# Forbidden
ErrorDocument 403 /index.php?page=e403
# Not found
ErrorDocument 404 /index.php?page=e404
# Method Not Allowed
ErrorDocument 405 /index.php?page=e405
# Request Timed Out
ErrorDocument 408 /index.php?page=e408
# Request URI Too Long
ErrorDocument 414 /index.php?page=notfound
# Internal Server Erro
ErrorDocument 500 /index.php?page=notfound
# Not Implemented
ErrorDocument 501 /index.php?page=notfound
# Bad Gateway
ErrorDocument 502 /index.php?page=notfound
# Service Unavailable
ErrorDocument 503 /index.php?page=notfound
# Gateway Timeout
ErrorDocument 504 /index.php?page=notfound
# Полный список возможных ошибок
# 400 - Bad Request
# 401 - Unauthorized
# 402 - Payment Required
# 403 - Forbidden
# 404 - Not Found
# 405 - Method Not Allowed
# 406 - Not Acceptable
# 407 - Proxy Authentication Required
# 408 - Request Time-out
# 409 - Conflict
# 410 - Gone
# 411 - Length Required
# 412 - Precondition Failed
# 413 - Request Entity Too Large
# 414 - Request-URI Too Large
# 415 - Unsupported Media Type
# 500 - Internal Server Error
# 501 - Not Implemented
# 502 - Bad Gateway
# 503 - Service Unavailable
# 504 - Gateway Time-out
# 505 - HTTP Version not supported
#
# Лайфхак для ленивых
# Если лень делать страницу, можно просто показывать текстовое сообщение, которое
# обязательно должно начинаться с кавычки, кавычка в сообщении не выводится:
# ErrorDocument 403 "Простите. У вас нет доступа!"