Полезные правила в .htaccess
.htaccess — это дополнительный конфигурационный файл, который позволяет управлять настройками сайта и изменять настройки для отдельно взятых папок и пользователей.

Если в корневом каталоге лежит .htaccess с определенным правилом, то он будет действовать на все папки, кроме тех, в которых так же есть .htaccess. Если в подпапке лежит .htaccess, то для содержимого папки будет использоваться правило именно из него, а не из корневого .htaccess.
В этой статье приведены примеры часто используемых правил для .htaccess
Указание кодировки
Отображения содержимого каталога (действует на все вложенные и дочерние папки)
Блокировка доступа к сайту для конкретного ip
Блокировка доступа к файлам .htaccess для всех, кроме разрешенного ip 172.17.10
Блокировка доступа к файлам по их расширению.
Задание логина и пароля при входе на сайт
В .htaccess прописываем:
Вывод ошибок
Другие варианты вывода ошибок: https://vk.com/@cishostru-kak-vkluchit-pokaz-preduprezhdenii-i-oshibok-na-saite
Пример настройки кеширования и сжатия
Разрешение использования php кода на html странице

Настройки редиректа
Различные варианты приведены в статье: blog.cishost.ru/2022/02/25/razlichnye-pravila-redirekta-cherez-htaccess.html

Если в корневом каталоге лежит .htaccess с определенным правилом, то он будет действовать на все папки, кроме тех, в которых так же есть .htaccess. Если в подпапке лежит .htaccess, то для содержимого папки будет использоваться правило именно из него, а не из корневого .htaccess.
В этой статье приведены примеры часто используемых правил для .htaccess
Указание кодировки
php_value default_charset "utf-8"
Отображения содержимого каталога (действует на все вложенные и дочерние папки)
# Запрет выдачи листинга
Options -Indexes
# Разрешение выдачи листинга
Options +Indexes
Блокировка доступа к сайту для конкретного ip
# Этот код пускает всех кроме 176.14.1.1
SetEnvIf Remote_Addr "176.14.1.1" realremoteaddr
Order Allow,Deny
Allow from all
Deny from env=realremoteaddr
Блокировка доступа к файлам .htaccess для всех, кроме разрешенного ip 172.17.10
# Запретить доступ к файлам .htaccess
<Files ~ "^.*.([Hh][Tt][Aa])">
Order allow,deny
Allow from 172.17.10
Satisfy all
</Files>
Блокировка доступа к файлам по их расширению.
# Запрет доступа к файлам всех типов, кроме указанных
Order deny,allow
Deny from all
<Files ~ ".(xml|css|js|jpe?g|png|gif|pdf|docx|rtf|odf|zip|rar)$">
Allow from all
</Files>
Задание логина и пароля при входе на сайт
В .htaccess прописываем:
AuthType Basic
AuthName "Thats protected Area!"
AuthUserFile /var/www/userXXXX/data/www/сайт.ru/.htpasswd
Require valid-user
Добавляем файл: .htpasswd (там же где .htaccess):mozg:$apr1$67DGTaqb$m58NDMBT2w5z1
Где mozg — имя пользователя, а $apr1$67DGTaqb$m58NDMBT2w5z1 — хешированный пароль MD5/SHA1 Вывод ошибок
#Включение вывода ошибок
php_flag display_errors on
#Если не достаточно, добавляем:
php_flag display_startup_errors on
php_flag html_errors on
php_flag log_errors on
php_flag ignore_repeated_errors off
php_flag ignore_repeated_source off
php_flag report_memleaks on
php_flag track_errors on
php_value docref_root 0
php_value docref_ext 0
php_value error_reporting -1
php_value log_errors_max_len 0
#Чтобы выключить вывод ошибок php, необходимо установить</strong>
php_flag display_errors off
#Если не достаточно, добавляем:
php_value error_reporting 0
php_flag html_errors off
Другие варианты вывода ошибок: https://vk.com/@cishostru-kak-vkluchit-pokaz-preduprezhdenii-i-oshibok-na-saite
Пример настройки кеширования и сжатия
#Сжатие
<ifModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript
</ifModule>
#Кеширование
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access 7 days"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
ExpiresByType text/html "access plus 7 day"
ExpiresByType text/x-javascript "access 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType application/x-shockwave-flash "access 1 year"
</IfModule>
# Cache-Control
<ifModule mod_headers.c>
# 30 дней
<filesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
# 30 дней
<filesMatch "\.(css|js)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
# 1 день
<filesMatch "\.(html|htm|php)$">
Header set Cache-Control "max-age=172800, private, must-revalidate"
</filesMatch>
</ifModule>
Разрешение использования php кода на html странице
RemoveHandler .php .html .htm
AddType application/x-httpd-php .php .htm .html .phtml
+ в панели управления в разделе MIME-типы добавляем расширение .html
 
Настройки редиректа
Различные варианты приведены в статье: blog.cishost.ru/2022/02/25/razlichnye-pravila-redirekta-cherez-htaccess.html
Нет комментариев