Справка по .htaccess с примерами, Кеширование с помощью .htaccess, Сжатие с помощью .htaccess

Кеширование и сжатие файлов при помощи .htaccess, Установить индексный файл по умолчанию, Не дать IE войти в режим совместимости, закрыть доступ к служебным папкам и файлам, Защита от XSS в браузере, Универсальный редирект с домена с www. на домен без

Справка по .htaccess с примерами

» » Сообщение:

Установить индексный файл по умолчанию:

Код: Выделить всё Развернуть
DirectoryIndex index.php

Задать кодировку по умолчанию:

Код: Выделить всё Развернуть
AddDefaultCharset utf-8

Задать кодировку для определенных форматов файлов:

Код: Выделить всё Развернуть
<IfModule mod_mime.c>
    AddCharset utf-8 .atom .css .js .json .jsonld .rss .vtt .webapp .xml
</IfModule>

Запрет листинга директорий:

Код: Выделить всё Развернуть
# Запрещаем листинг директорий.
Options -indexes

Отключить вывод информации о сервере:

Код: Выделить всё Развернуть
# Отключаем вывод информации о [anchor=http://likbezz.ru/viewtopic.php?t=1640|Как установить Денвер на флешку? или Денвер в кармане]сервере[/anchor].
ServerSignature Off
php_flag expose_php Off

Не дать IE войти в режим совместимости:

Код: Выделить всё Развернуть
# Не даем IE войти в режим совместимости с IE7, даже когда он сам этого хочет.
# Use ChromeFrame if it's installed for a better experience for the poor IE folk
<IfModule mod_setenvif.c>
    <IfModule mod_headers.c>
        BrowserMatch MSIE ie
        Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie
    </IfModule>
</IfModule>

Кеширование и сжатие файлов при помощи .htaccess

Код: Выделить всё Развернуть
# Ужимаем статические файлы.
<IfModule mod_deflate.c>
    # Выставляем заголовок Content-Encoding: gzip.
    AddEncoding gzip .gz
   
    # Для favicon.ico
    AddOutputFilterByType DEFLATE image/x-icon
    # Для CSS-файлов.
    AddOutputFilterByType DEFLATE text/css
    # Для JavaScript-файлов.
    AddOutputFilterByType DEFLATE text/javascript
    AddOutputFilterByType DEFLATE application/x-javascript
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE application/json
    # Для остальных типов файлов.
    AddOutputFilterByType DEFLATE text/plain
    AddOutputFilterByType DEFLATE text/x-component
    AddOutputFilterByType DEFLATE text/xml
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE application/rss+xml
    AddOutputFilterByType DEFLATE application/atom+xml
    AddOutputFilterByType DEFLATE font/truetype
    AddOutputFilterByType DEFLATE font/opentype
    AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
    AddOutputFilterByType DEFLATE image/svg+xml
   
    # Отключаем сжатие для тех браузеров, у которых проблемы
    # с его распознаванием.
    BrowserMatch "MSIE [456]" no_gzip dont-vary
    BrowserMatch "SV1;" !no_gzip !dont-vary
    BrowserMatch "Opera" !no_gzip !dont-vary
    BrowserMatch "Firefox/[0-3]\." gzip-only-text/html
    BrowserMatch "Firefox/3\.[1-9]" !gzip-only-text/html
    BrowserMatch "Chrome/2" gzip-only-text/html
    BrowserMatch "Safari" gzip-only-text/html
    BrowserMatch "Konqueror" gzip-only-text/html
</IfModule>

<IfModule mod_expires.c>
    # Включаем кэширование для всех файлов сроком на 10 лет.
    ExpiresActive On
    ExpiresDefault "access plus 10 years"
   
    # Отключаем его для HTML-файлов.
    <FilesMatch .*\.(shtml|html|phtml|php)$>
        ExpiresActive Off
    </FilesMatch>
</IfModule>

<IfModule mod_headers.c>
    # Указываем прокси-серверам передавать заголовок User-Agent
    # для корректного распознавания сжатия.
    Header append Vary User-Agent env=!dont-vary
   
    # Запрещаем кэширование на уровне прокси-сервера для всех
    # файлов, для которых у нас выставлено сжатие.
    <FilesMatch .*\.(css|js|php|phtml|shtml|html|xml)$>
        Header append Cache-Control: "private, must-revalidate"
    </FilesMatch>
</IfModule>

# Allow cookies to be set from iframes in Internet Explorer.
# http://msdn.microsoft.com/en-us/library/ms537343.aspx
# http://www.w3.org/TR/2000/CR-P3P-20001215/
<IfModule mod_headers.c>
    Header set P3P "policyref=\"/w3c/p3p.xml\", CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\""
</IfModule>

Как закрыть доступ к служебным папкам и файлам:

Код: Выделить всё Развернуть
# Закрывает доступ к служебным папкам и файлам, которые начинаются на . или ~.
# Например: факл .htaccess, директория .svn
<IfModule mod_rewrite.c>
    RewriteRule (?:^|/)(?:\..*)$ - [F]
</IfModule>

<FilesMatch "(package\.json|gruntfile\.js|gulpfile\.js|bower\.json|composer\.(lock|json)|readme\.md)$">
    # Apache < 2.3
    <IfModule !mod_authz_core.c>
        Order allow,deny
        Deny from all
        Satisfy All
    </IfModule>

    # Apache ≥ 2.3
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
</FilesMatch>

Как закрыть важные файлы по расширению:

Код: Выделить всё Развернуть
# Защищает важные файлы (по расширению) от получения их содержимого через браузер.
<FilesMatch "(^#.*#|\.(bak|config|dist|fla|in[ci]|log|psd|sh|sql|sw[op]|bat|db)|~)$">
    # Apache < 2.3
    <IfModule !mod_authz_core.c>
        Order allow,deny
        Deny from all
        Satisfy All
    </IfModule>

    # Apache ≥ 2.3
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
</FilesMatch>

Запрет открытия сайта в ифрейме:

Код: Выделить всё Развернуть
# Заперещаем открытие сайта в iframe, на стороннем ресурсе. Тем самым предотвращаем clickjacking.
<IfModule mod_headers.c>
    Header set X-Frame-Options "SAMEORIGIN"
    <FilesMatch "\.(appcache|atom|crx|css|cur|eot|f4[abpv]|flv|gif|htc|ico|jpe?g|js|json(ld)?|m4[av]|manifest|map|mp4|oex|og[agv]|opus|otf|pdf|png|rdf|rss|safariextz|svgz?|swf|tt[cf]|vcf|vtt|webapp|web[mp]|woff|xml|xpi)$">
        Header unset X-Frame-Options
    </FilesMatch>
</IfModule>

Как запретить IE автоматически определять тип документа:

Код: Выделить всё Развернуть
# Запрещаем IE автоматически определять тип документа.
# Т.к. это потенциально может привести к проблемам с безопасностью.
<IfModule mod_headers.c>
    Header set X-Content-Type-Options "nosniff"
</IfModule>

Защита от XSS в браузере

Код: Выделить всё Развернуть
# Защита от XSS в браузере.
# Работает только на IE и потенциально может принести проблемы со сложными URI.
<IfModule mod_headers.c>
    Header set X-XSS-Protection "1; mode=block"
    <FilesMatch "\.(appcache|atom|crx|css|cur|eot|f4[abpv]|flv|gif|htc|ico|jpe?g|js|json(ld)?|m4[av]|manifest|map|mp4|oex|og[agv]|opus|otf|pdf|png|rdf|rss|safariextz|svgz?|swf|tt[cf]|vcf|vtt|webapp|web[mp]|woff|xml|xpi)$">
        Header unset X-XSS-Protection
    </FilesMatch>
</IfModule>

Как предотвратить частичный листинг файлов:

Код: Выделить всё Развернуть
# Предотвращает частичный листинг файлов.
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

Универсальный редирект с домена с www. на домен без www

Код: Выделить всё Развернуть
<IfModule mod_rewrite.c>
    RewriteCond %{HTTPS} !=on
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
</IfModule>

Универсальная заглушка при отсутствии файла или директории

Код: Выделить всё Развернуть
<IfModule mod_rewrite.c>
    # Если файл или директория существуют, то возвращаем их содержимое.
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    # Перенаправление запроса на index.php
    RewriteRule . index.php
</IfModule>

--

Вложения
Зарегистрируйтесь, чтобы скачать вложения.
filesmatch, ifmodule, .htaccess, кеширование, сжатие, rewritecond, rewriterule, mod_headers, xss, order, allow, deny, satisfy



Похожие темыКомментарии ПросмотрыПоследнее сообщение
03923Защита сайта, .htaccess. Запрет вып...
Сообщение от: Admin
01062Защита сайта с помощью .htaccess и ...
Сообщение от: Admin
0415Блокировка POST-запросов с помощью ...
Сообщение от: Admin
0353Запрет в htaccess на POST запрос
Сообщение от: Admin
0422Защита от хотлинка при помощи .htac...
Сообщение от: Admin