разное .htaccess - набор инструкций к включению/использованию 

Дата публикации  Дата изменения07.09.19  КомментарииНет   Просмотры8067

Курсы

Инструкции в .htaccess предназначены для оптимизации/управления работы сайта по различным аспектам – скорости загрузки, временной зоны сайта, правил редиректа, вывода ошибок и пр.

### Закомментированое указание индексного файла - название запускного (по умолчанию) файла может быть любым - указывается и раскомментируется при необходимости 
    #DirectoryIndex index.php index.html
### Закрываем доступ по ip нарушителям (пустым быть не может - лучше совсем удалить, если некого банить
<Limit POST, GET>
Order Allow,Deny
Allow from all
Deny from 127.0.2.1
###Бан ботов по подсети IP
# Bots: Twingly Recon, twingly.com
    Deny from 80.252.169.0 - 80.252.171.255
# Bots: Parse Robot
   Deny from 146.120.240.0 - 146.120.255.255 
# Bots: Synapse bot
   Deny from 94.242.206.90 - 94.242.222.107
# Bots: PaperLiBot/2.1, support.paper.li
   Deny from 37.187.149.179 - 37.187.186.143
</Limit>
###Кодировка 
    AddDefaultCharset utf-8
###запрещает показывать содержимое каталогов, если в них нет индексного файла 
    Options -Indexes
###позволяет использовать символические ссылки на файлы или каталоги вне  корня сайта
    Options +FollowSymLinks
###Временная зона сайта: http://www.php.net//manual/ru/timezones.php
<IfModule mod_setenvif.c>
    SetEnv TZ Europe/Moscow
</IfModule>
###скрыть подпись сервера
    ServerSignature Off
###скрыть подпись сервера 2
<IfModule mod_headers.c>
  Header unset X-Powered-By
  Header unset Server
</IfModule>
###включение режима перенаправления - в идеале лучше проверять наличие модуля, но его отсутствие/невключение достаточно редко (все правила включить между <IfModule mod_rewrite.c> и </IfModule>
    RewriteEngine On
###указываем корень перенаправления - если, например, сайт в подпапке, то указывается эта папка как отправная точка отсчета
    RewriteBase /
###Склейка зеркал на основной без www
    RewriteCond %{HTTP_HOST} ^www.site\.com$ [NC]
    RewriteRule ^(.*)$ http://site.com/$1 [R=301,L]
###Убирается расширение .php из адресной строки
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}\.php -f
    RewriteRule ^(.*)$ $1.php [L]
###закомментировано: закрываем доступ по имени сайта (если даже ip изменится, то название все равно останется)
    #RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?bad_site.com.*$ [NC]
    #RewriteRule .* - [F,L]
###Попытка закрыть возможность скачивания через телепорт - бесполена, в общем-то, поскольку он и подобные могут маскироваться под USER_AGENT разных браузеров - но все-таки
    RewriteCond %{HTTP_USER_AGENT} ^Teleport
    RewriteRule ^.*$ - [F]
###Блокировка доступа к сканированию сайта роботами Ahrefs и Open Site Explorer
    RewriteCond %{HTTP_USER_AGENT} ^rogerbot [OR]
    RewriteCond %{HTTP_USER_AGENT} ^AhrefsBot
    RewriteRule .* - [F]
###Защита от хотлинка - то есть, от отображения материалов сайта на другом сайта через простое указание источника. Можно добавлять любые желаемые расширения по тому же принципу
    RewriteCond %{HTTP_REFERER} !^$
#если пришли и _не_ с сайта http://site.ru
    RewriteCond %{HTTP_REFERER} !^http://(www.)?site\.com/.*$ [NC]
    RewriteRule .(jpg|gif|png|css|mov|swf|dcr|exe|rar|avi|vob|zip)$ - [F]
###Явное выключение магических кавычек: _http://www.php.su/security/?magicquotes
    php_flag magic_quotes_gpc off
###Закомментированное явное отключение глобальных переменных - опции в php.ini, которая указывает на необходимость регистрации переменных полученные методом POST или GET в глобальный массив $GLOBALS 
    #php_value register_globals 0
###отключаем вывод ошибок - в лог писаться будут, а пользователю незачем видеть
    php_flag display_errors off
    php_flag display_startup_errors off
###сжатие по типам - если модкль включен
<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 mime ^text\.*
    mod_gzip_item_include mime ^application/x-javascript.*
    mod_gzip_item_exclude mime ^image\.*
    mod_gzip_item_exclude rspheader	^Content-Encoding:.*gzip.*
</IfModule>
###кэширование, кастомизированное по типам
<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)$">
        Header set Cache-Control "max-age=2592000"
    </FilesMatch>
    #отключить кэширование
    <FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
        Header unset Cache-Control
    </FilesMatch>
</IfModule>
###Продолжение кэширования по другому модулю
<ifModule mod_expires.c>
    ExpiresActive On
    #по умолчанию кеш в 5 секунд
    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 application/x-shockwave-flash "access plus 2592000 seconds"
    #кэшировать css, javascript и текстовые файлы на одну неделю
    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"
    #кэшировать html и htm файлы на один день
    ExpiresByType text/html "access plus 43200 seconds"
    #кэшировать xml файлы на десять минут
    ExpiresByType application/xhtml+xml "access plus 600 seconds"
</ifModule>

Полезные ссылки по теме (при включении каждой инструкции желательно сразу же проверять работоспособность – то же относится и к htaccess варианту выше):

+, конечно, источник по Апач (англ):

  • Примечание – в ряде случаев инструкции срабатывают без включения в условие проверки подключения модуля – включение проверки может вызывать 5хх ошибку.

⇥ Проверка/посмотреть включения/е модулей:

<?=phpinfo();?>
Смотреть в:
apache2handler
Loaded Modules 

<?php print_r(apache_get_modules());?>

Блоки (массив) модулей в каждом разделе:
<? print_r(get_loaded_extensions()); ?>

Для apache2, из консоли:
apache2ctl -t -D DUMP_MODULES

*UPD
Регулярные выражения в файле .htaccess

#########################################
#Источник: https://github.com/Roosso/MyScriptics/blob/master/.htaccess
#Этот .htaccess поможет сделать ваш сайт быстрей.
#Пользуйтесь на здоровье себе и вашему сайту.
#Автор: Александр Белов aka alex Roosso
#Сайт: http://www.black-web.ru
#ICQ: 3405729
#Электропочта: roosso@yandex.ru

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 На который мы перенаправляем запросы
#Полезно в случаях когда надо полностью перенаправлять людей с одного сайта на другой.
#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 Полный путь в файловой системе сервера к файлу или скрипту соответствующим этому запросу.
	#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 font/opentype .otf
	AddType application/x-font-woff .woff
	#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 mime ^text\.*
	mod_gzip_item_include mime ^application/x-javascript.*
	mod_gzip_item_include mime ^application/x-font-woff.*
	mod_gzip_item_exclude mime ^image\.*
	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-javascript
	AddOutputFilterByType DEFLATE application/xhtml+xml
	AddOutputFilterByType DEFLATE application/xml
	AddOutputFilterByType DEFLATE font/opentype
	AddOutputFilterByType DEFLATE font/otf
	AddOutputFilterByType DEFLATE font/ttf
	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>
	<FilesMatch "\.(html|htm)$">
 Header set Cache-Control "max-age=43200"
	</FilesMatch>
	<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|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|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 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 "Простите. У вас нет доступа!"

Бесплатные курсы

Категории

Теги: , , , , , , , , , , , , , , , , , , , , ,

Оцените материал:

Рейтинг: 8.8/10 (5)


КомментарииКомментарии:

Нет комментариев к этой статье.


 

Старые →← Новые