### Закомментированое указание индексного файла – название (по умолчанию) файла может быть любым – указывается и раскомментируется при необходимости
#DirectoryIndex index.php index.html
### Закрываем доступ по ip нарушителям (пустым быть не может – лучше совсем удалить, если некого банить
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
###Кодировка
AddDefaultCharset utf-8
###запрещает показывать содержимое каталогов, если в них нет индексного файла
Options -Indexes
###позволяет использовать символические ссылки на файлы или каталоги вне корня сайта
Options +FollowSymLinks
###Временная зона сайта: http://www.php.net//manual/ru/timezones.php
SetEnv TZ Europe/Moscow
###скрыть подпись сервера
ServerSignature Off
###включение режима перенаправления – в идеале лучше проверять наличие модуля, но его отсутствие/невключение достаточно редко (все правила включить между и
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
###сжатие по типам – если модкль включен
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.*
###кэширование, кастомизированное по типам
#кэшировать html и htm файлы на один день
<FilesMatch “\.(html|htm)$”>
Header set Cache-Control “max-age=43200”
#кэшировать css, javascript и текстовые файлы на одну неделю
<FilesMatch “\.(js|css|txt)$”>
Header set Cache-Control “max-age=604800”
#кэшировать флэш и изображения на месяц
<FilesMatch “\.(flv|swf|ico|gif|jpg|jpeg|png)$”>
Header set Cache-Control “max-age=2592000”
#отключить кэширование
<FilesMatch “\.(pl|php|cgi|spl|scgi|fcgi)$”>
Header unset Cache-Control
###Продолжение кэширования по другому модулю
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”
Комментарии: