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

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


Если в корневом каталоге лежит .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

Нет комментариев