.htaccess
Полезные сниппеты кода для файла .htaccess
, собранные в одном месте.
Картинка-заглушка, показывается если нужное изображение не найдено в текущей директории
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f RewriteRule \.(gif|jpe?g|png|bmp) /cars-pics/!404.png [NC,L]
Популярные редиректы
RewriteEngine On ### to www #### RewriteCond %{HTTP_HOST} ^example.ru$ [NC] # домен без www перекидывать в любом случае RewriteRule ^(.*)$ https://www.example.ru/$1 [R=301,L] ### хороший https-редирект ### RewriteCond %{HTTPS} off RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] ### http://wiki.example.com/index.php~n=ЦИФРЫ/ЦИФРЫ --> http://example.com/wiki/ЦИФРЫ/ЦИФРЫ ### # вообще-то вместо вроде ~ должен быть ?, но так почему-то не получилось сделать RewriteRule ^index\.php~n=([0-9]+)/([0-9]+)$ http://example.com/wiki/$1/$2 [R=301,L] ### не редирект, но создание нового короткого адреса, по которому отдается контент длинного адреса ### RewriteRule ^question_([0-9]+).html$ /questions/question_$1.html [L,QSA] ### редирект для страницы вида: /events/exhibitions/exhibitions_756.html , а также любых подобных страниц вида: /*/*/*_*.html ### RewriteRule ^([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)_([0-9]+).html$ /index/index_$4.html [R=301,L]
Борьба с DOS-атаками и парсингом:
# отсеиваем злых ботов по User-Agent SetEnvIfNoCase User-Agent "^DigExt; DTS Agent" bad_bot # открываем доступ только себе deny from all allow from *.*.*.* # мой текущий IP
Большой список популярных ботов:
RewriteCond %{HTTP_USER_AGENT} MJ12bot [OR] RewriteCond %{HTTP_USER_AGENT} Java [OR] RewriteCond %{HTTP_USER_AGENT} NjuiceBot [OR] RewriteCond %{HTTP_USER_AGENT} Gigabot [OR] RewriteCond %{HTTP_USER_AGENT} Baiduspider [OR] RewriteCond %{HTTP_USER_AGENT} JS-Kit [OR] RewriteCond %{HTTP_USER_AGENT} Voyager [OR] RewriteCond %{HTTP_USER_AGENT} PostRank [OR] RewriteCond %{HTTP_USER_AGENT} PycURL [OR] RewriteCond %{HTTP_USER_AGENT} Aport [OR] RewriteCond %{HTTP_USER_AGENT} ia_archiver [OR] RewriteCond %{HTTP_USER_AGENT} DotBot [OR] RewriteCond %{HTTP_USER_AGENT} SurveyBot [OR] RewriteCond %{HTTP_USER_AGENT} larbin [OR] RewriteCond %{HTTP_USER_AGENT} Butterfly [OR] RewriteCond %{HTTP_USER_AGENT} libwww [OR] RewriteCond %{HTTP_USER_AGENT} Wget [OR] RewriteCond %{HTTP_USER_AGENT} SWeb [OR] RewriteCond %{HTTP_USER_AGENT} LinkExchanger [OR] RewriteCond %{HTTP_USER_AGENT} Soup [OR] RewriteCond %{HTTP_USER_AGENT} WordPress [OR] RewriteCond %{HTTP_USER_AGENT} PHP/ [OR] RewriteCond %{HTTP_USER_AGENT} spbot [OR] RewriteCond %{HTTP_USER_AGENT} MLBot [OR] RewriteCond %{HTTP_USER_AGENT} InternetSeer [OR] RewriteCond %{HTTP_USER_AGENT} FairShare [OR] RewriteCond %{HTTP_USER_AGENT} Yeti [OR] RewriteCond %{HTTP_USER_AGENT} Birubot [OR] RewriteCond %{HTTP_USER_AGENT} YottosBot [OR] RewriteCond %{HTTP_USER_AGENT} gold\ crawler [OR] RewriteCond %{HTTP_USER_AGENT} Linguee [OR] RewriteCond %{HTTP_USER_AGENT} Ezooms [OR] RewriteCond %{HTTP_USER_AGENT} lwp-trivial [OR] RewriteCond %{HTTP_USER_AGENT} Purebot [OR] RewriteCond %{HTTP_USER_AGENT} User-Agent [OR] RewriteCond %{HTTP_USER_AGENT} kmSearchBot [OR] RewriteCond %{HTTP_USER_AGENT} SiteBot [OR] RewriteCond %{HTTP_USER_AGENT} CamontSpider [OR] RewriteCond %{HTTP_USER_AGENT} ptd-crawler [OR] RewriteCond %{HTTP_USER_AGENT} HTTrack [OR] RewriteCond %{HTTP_USER_AGENT} suggybot [OR] RewriteCond %{HTTP_USER_AGENT} ttCrawler [OR] RewriteCond %{HTTP_USER_AGENT} Nutch [OR] RewriteCond %{HTTP_USER_AGENT} AhrefsBot [OR] RewriteCond %{HTTP_USER_AGENT} Zeus RewriteRule .* - [F,L]