htaccess
Файл .htaccess (название без расширения) определяет некоторые настройки для вашего сайта. Обычно находится в корневой папке и определяет работу всего сайта. Можно поместить в разные папки, тогда он будет действовать для конкретных папок.
Каждая директива (команда) начинается с новой строки, после знака # можно добавлять комментарии, которые не будут учитываться сервером.
Возможности .htaccess
#Главная страница по умолчанию
DirectoryIndex new_index.html
#301 редирект
Redirect 301 /page1/ https://mysite.com/page2/
Redirect 301 /about.html /about-us.html
#404 редирект
ErrorDocument 404 /errors/404.html
#Редирект на HTTPS
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
#Редирект с www на без www
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
#Перенаправляем с одного домена на другой
RewriteEngine On
RewriteRule ^(.*)$ http://www.mysite2.com/$1 [R=301,L]
#Кодировка
AddDefaultCharset utf-8
#Максимум 2 запроса в секунду на одну страницу
DOSPageCount 2
#Не более 50 запросов в секунду на весь сайт
DOSSiteCount 50
#Блокировать на 10 секунд при нарушении
DOSBlockingPeriod 10
#Защищаем .htaccess файл
<files .htaccess="">
order allow,deny
deny from all
</files>
#Защищаем файл с информацией о базе данных
<files config.php>
order allow,deny
deny from all
</files>
#Запрещаем выполнение вредоносных скриптов
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]
#Убрать .html
RewriteBase /
RewriteRule (.*)\.html$ $1 [R=301,L]