Запрет доступа для определенных IP-адресов или диапазонов IP-адресов
Запрет доступа с IP-адреса 123.123.123.123.
Order Deny,AllowDeny from 123.123.123.123
Если не указывать последние цифры адреса, то запрет будет распространяться на весь диапазон 123.123.123.0 - 123.123.123.255.
Order Deny,AllowDeny from 123.123.123
Разрешаем доступ только с определенных IP-адресов
Order Deny,AllowDeny from allAllow from 123.123.123.123
Принудительное задание кодировки
AddDefaultCharset UTF-8Иногда требуется очистка кэша браузера.
Отмена перекодировки сервером
CharsetDisable On
Создание собственных страниц с сообщениями об ошибках
При переходе, например на несуществующий адрес посетитель увидит сообщение сервера об ошибке, можно создать собственные страницы ошибок, либо перенаправлять посетителя на другой адрес, как главная страница. Но для правильной индексации не перенаправлять, а указывать ошибку.
ErrorDocument 404 http://site.ru/error/404.html
ErrorDocument 403 http:// site ru/error/403.html
ErrorDocument 401 http:// site.ru/error/401.html
ErrorDocument 500 http:// site.ru/error/500.html
Строка ErrorDocument 404 http://site.ru/error/404.html указывает, что при ошибке 404 будет показан файл 404.html, который должен находиться в корне директории сайта. Если файл расположен в другой директории, измените путь к файлу или ссылке.
Редиректы
Редирект на .html
Пример, редирект с c site.ru/blog на site.ru/blog.html
RewriteCond %{REQUEST_URI} (.*/[^/.] )($|\?)
RewriteRule .* %1.html [R=301,L]
RewriteRule ^(.*)/$ /$1.html [R=301,L]
Редирект на страницу без слеша в конце адреса
Пример, редирект с c site.ru/blog/ на site.ru/blog
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(. )/$ /$1 [R=301,L]
Редирект на страницу со слешем в конце адреса
RewriteCond %{REQUEST_URI} (.*/[^/.] )($|\?)
RewriteRule .* %1/ [R=301,L]
Редирект на страницу без index.php в адресе
RewriteRule ^index.php/(.*)$ http://mysite.ru/$1 [R=permanent,L]
Редирект на страницу без index.php в конце адреса
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://site.ru/ [R=301,L]
Редирект с www на без www
RewriteCond %{HTTP_HOST} ^www\.site\.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
Редирект без www на www
RewriteCond %{HTTP_HOST} ^site.ru$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]
Склейка доменов.
Пример, у вас несколько доменов, но посетитель должен переправляться на один
RewriteCond %{HTTP_HOST} !^site.ru$
RewriteRule ^(.*) http://site.ru/$1 [R=301,L]
Защита от хотлинка
Если вы хотите запретить вставку изображений с сайта по прямой ссылке.
Вместо site.ru укажите адрес сайта, jpg|jpeg|png|gif - расширение запрещенных изображений, images.jpg – изображение которое будет показываться, если картинка находится не в корне сайта, укажите полный путь.
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?site.ru [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ images.jpg [NC,R,L]
Защита от брутофорса
Разрешаем доступ к директории administrator только по протоколу HTTP, что отсчет ботов. Для каждой CMS нужно указать свой адрес, например wp-login, wp-admin и так далее
RewriteCond %{REQUEST_URI} ^/administrator\.php$
RewriteCond %{THE_REQUEST} HTTP/1\.0
RewriteRule ^(.*)$ - [F,L]
При модернизации динамического сайта и создании ЧПУ-адресов часто возникает необходимость перенаправить старые страницы с параметрами ID на новые с ЧПУ. Например, чтобы переадресовать страницу вида http://site.com.ua/page.php?id=13 на новую страницу http://site.com.ua/newname.html, используется следующая конструкция:
Редирект со старых статических url на новые
Пример редирект со страницы http://site.com.ru/id=21
RewriteCond %{QUERY_STRING} ^id=21$
RewriteRule ^/page.php$ http://site.ru/news.html [L,R=301]