Выпекаем сайты, находим покупателей

Полезные правила в htaccess для Вашего сайта

Файл .htaccess

Используется для дополнительной конфигурации сервера apache. Дальность действия файла определяется его расположением, как правило его кладут в корневую папку сайта. Он также действует и на все вложенные каталоги. Далее, я приведу несколько полезных правил для использования их в htaccess.

Полезные правила .htaccess


Options -indexes //Запретить листинг директорий (отображение содержимного директории)
DirectoryIndex index.php //Индекс файл (можно указывать несколько через пробел, по приоритету)
Options -ExecCGI //Запретить запуск CGI скриптов
AddDefaultCharset utf-8 //Указать стандартную кодировку
php_flag register_globals off //Отключить глобальные переменные
Options +FollowSymLinks //Разрешение на использование ссылок на файлы находящиеся за пределами "папки www" вашего сайта
ServerSignature Off //Отключить вывод информации о сервере
php_flag expose_php Off //Включение редиректов
RewriteEngine On //Не использовать редирект при соответствии ссылки с реальным файлом/папкой
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ //Перенаправлять с domen.ru/index.php на domen.ru. Сделано против дубля главной страницы
RewriteRule ^index\.php$ / [R=301,L]
RewriteCond %{HTTPS} !=on //Перенаправлять с www.domen.ru на domen.ru
RewriteCond %{HTTP_HOST} ^www.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteRule ^yandex.yml? get/yml.php [QSA,L] //Пример создания псевдо-ссылки, на файл yandex.yml, когда как на самом деле он по адресу get/yml.php
RewriteRule ^([A-Za-z0-9_-^]+)?/?([A-Za-z0-9_-^]+)?/?([A-Za-z0-9_-^]+)?/?$ /index.php?module=$1&page=$2¬e=$3 [QSA,L] //Пример ЧПУ, подробнее по ссылке в конце статьи
RewriteRule ^.htaccess$ - [F] //Закрыть доступ к .htaccess-файлу извне
RewriteRule . index.php //Перенаправлять на index.php при запросе других файлов
php_value       upload_max_filesize     32M //Правила для php, при недоступном php.ini
php_value       post_max_size           20M
php_value       default_charset utf-8
php_flag        expose_php Off
php_flag        magic_quotes_gpc Off
php_flag        register_globals Off
php_flag        short_open_tag On
//Указание типов файлов, на тот редкий случай, когда на сервере сбиваются типы файлов.
//Первая строчка указывает на то, что html файлы могут исполняться как php файлы.
//Последняя строка указывает какие типы файлов должны скачиваться (помогает при проигрывании видео файлов браузером)
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
AddType text/x-component .htc
# 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
RewriteCond %{HTTP_REFERER} !^$ //Защита сайта от вставки изображений с посторонних ресурсов
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?вашдомен.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]
RewriteCond %{HTTP_REFERER} bannedurl1.com [NC,OR] //Запретить вход пользователям, переходящих к вам с таких-то сайтов
RewriteCond %{HTTP_REFERER} bannedurl2.com [NC,OR]
RewriteRule .* - [F]
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
Deny from env=bad_user
RewriteCond %{HTTPS} !on //Перенаправлять пользователей с http на https
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
//Корректный переход со старого домена, на новый(с site.com и www.site.com на site.org).
//Оставить данные строки на старом домене лучше на несколько месяцев (2-3), для корректного перехода PR и ТИЦ со старого домена - на новый. 
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} robots.txt$ [NC]
RewriteRule ^([^/]+) $1 [L]
RewriteCond %{HTTP_HOST} ^site\.com
RewriteRule ^(.*)$ http://site.org/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www.site\.com
RewriteRule ^(.*)$ http://site.org/$1 [R=301,L]
#Содержание robots.txt, для переноса яндекс ТИЦ
#User-agent: Yandex
#Host: site.org
#User-agent: *
#Disallow:
#Sitemap: http://site.org/sitemap.xml
<FilesMatch ".(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$"> //Блокировка некоторых типов файлов
 Order Allow,Deny
 Deny from all
</FilesMatch>

Htaccess Фаерволл! 5G BLACKLIST/FIREWALL (2013)

Следующие правила взяты с сайта perishablepress.com. Версия фаерволла - 5g (уже есть бета 6g). Правила помогают обезопасить вас от вредоносной http активности.

# 5G BLACKLIST/FIREWALL (2013)
# @ http://perishablepress.com/5g-blacklist-2013/


# 5G:[QUERY STRINGS]
<IfModule mod_rewrite.c>
	RewriteEngine On
RewriteBase /
	RewriteCond %{QUERY_STRING} (\"|%22).*(<|>|%3) [NC,OR]
	RewriteCond %{QUERY_STRING} (javascript:).*(\;) [NC,OR]
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3) [NC,OR]
RewriteCond %{QUERY_STRING} (\\|\.\./|`|=\'$|=%27$) [NC,OR]
RewriteCond %{QUERY_STRING} (\;|\'|\"|%22).*(union|select|insert|drop|update|md5|benchmark|or|and|if) [NC,OR]
RewriteCond %{QUERY_STRING} (base64_encode|localhost|mosconfig) [NC,OR]
RewriteCond %{QUERY_STRING} (boot\.ini|echo.*kae|etc/passwd) [NC,OR]
RewriteCond %{QUERY_STRING} (GLOBALS|REQUEST)(=|\[|%) [NC]
RewriteRule .* - [F]
</IfModule> # 5G:[USER AGENTS] <IfModule mod_setenvif.c> # SetEnvIfNoCase User-Agent ^$ keep_out SetEnvIfNoCase User-Agent (binlar|casper|cmsworldmap|comodo|diavol|dotbot|feedfinder|flicky|ia_archiver|jakarta|kmccrew|nutch|planetwork|purebot|pycurl|skygrid|sucker|turnit|vikspider|zmeu) keep_out <limit GET POST PUT> Order Allow,Deny Allow from all Deny from env=keep_out </limit> </IfModule> # 5G:[REQUEST STRINGS] <IfModule mod_alias.c> RedirectMatch 403 (https?|ftp|php)\:// RedirectMatch 403 /(https?|ima|ucp)/ RedirectMatch 403 /(Permanent|Better)$ RedirectMatch 403 (\=\\\'|\=\\%27|/\\\'/?|\)\.css\()$ RedirectMatch 403 (\,|\)\+|/\,/|\{0\}|\(/\(|\.\.\.|\+\+\+|\||\\\"\\\") RedirectMatch 403 \.(cgi|asp|aspx|cfg|dll|exe|jsp|mdb|sql|ini|rar)$ RedirectMatch 403 /(contac|fpw|install|pingserver|register)\.php$ RedirectMatch 403 (base64|crossdomain|localhost|wwwroot|e107\_) RedirectMatch 403 (eval\(|\_vti\_|\(null\)|echo.*kae|config\.xml) RedirectMatch 403 \.well\-known/host\-meta RedirectMatch 403 /function\.array\-rand RedirectMatch 403 \)\;\$\(this\)\.html\( RedirectMatch 403 proc/self/environ RedirectMatch 403 msnbot\.htm\)\.\_ RedirectMatch 403 /ref\.outcontrol RedirectMatch 403 com\_cropimage RedirectMatch 403 indonesia\.htm RedirectMatch 403 \{\$itemURL\} RedirectMatch 403 function\(\) RedirectMatch 403 labels\.rdf RedirectMatch 403 /playing.php RedirectMatch 403 muieblackcat </IfModule> # 5G:[REQUEST METHOD] <ifModule mod_rewrite.c> RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) RewriteRule .* - [F] </IfModule> # 5G:[BAD IPS] <limit GET POST PUT> Order Allow,Deny Allow from all # uncomment/edit/repeat next line to block IPs # Deny from 123.456.789 </limit>

Блок BAD IPS - построен для индивидуального составления "плохих" адресов на ваш взгляд. На сайте автора есть список наиболее "плохих" замеченных адресов:
Deny from 24.213.139.114
Deny from 87.144.218.222
Deny from 95.5.32.79
Deny from 213.251.186.27
Deny from 88.191.93.186
Deny from 91.121.136.44
Deny from 50.56.92.47
Deny from 174.143.148.105
Deny from 82.170.168.91
Deny from 24.213.139.114
Deny from 61.147.110.14
Deny from 188.134.42.65
Deny from 122.164.215.155
Deny from 65.49.68.173
Deny from 220.155.1.166
Deny from 218.38.16.26
Deny from 50.56.92.47
Deny from 24.213.139.114
Deny from 91.200.19.84
Deny from 31.44.199.131
Deny from 49.50.8.63
Более подробный разбор реализации ЧПУ через htaccess тут.
Выбирайте, пользуйтесь и сохраняйте ссылку на эту статью, в будущем будут ещё обновления!
Последний раз статья обновлена: 25 февраля 2013г.

Комментарии и отзывы к материалу

29.08.2014

Григорий пишет:
Так ставить знак # перед Deny from 188.134.42.65, я имею ввиду список нежелательных IP-адресов или нет ?
В конце фаервола вроде стоит:
# uncomment/edit/repeat next line to block IPs
# Deny from 123.456.789
</limit>

Отправить комментарий

Как зовут?

Сообщение