• Насколько правильный .htaccess код и безопасный?

    @Bernusha Автор вопроса
    # ####################################################################################
    # # MIME ВИДЫ И КОДИРОВАНИЕ                                                          #
    # ####################################################################################
    # ------------------------------------------------------------------------------
    # | Правильные типы MIME для всех файлов                                       |
    # ------------------------------------------------------------------------------
    <IfModule mod_mime.c>
      # Audio
        AddType audio/mp4                                  m4a f4a f4b
        AddType audio/ogg                                  oga ogg
      # JavaScript
        # Normalize to standard type (it's sniffed in IE anyways):
        # http://tools.ietf.org/html/rfc4329#section-7.2
        AddType application/javascript                     js jsonp
        AddType application/json                           json
      # Video
        AddType video/mp4                                  mp4 m4v f4v f4p
        AddType video/ogg                                  ogv
        AddType video/webm                                 webm
        AddType video/x-flv                                flv
      # Web fonts
        AddType application/font-woff                      woff
        AddType application/vnd.ms-fontobject              eot
        # Browsers usually ignore the font MIME types and sniff the content,
        # however, Chrome shows a warning if other MIME types are used for the
        # following fonts.
        AddType application/x-font-ttf                     ttc ttf
        AddType font/opentype                              otf
        # Make SVGZ fonts work on iPad:
        # https://twitter.com/FontSquirrel/status/14855840545
        AddType    image/svg+xml                           svg svgz
        AddEncoding gzip                                   svgz
      # Other
        AddType application/octet-stream                   safariextz
        AddType application/x-chrome-extension             crx
        AddType application/x-opera-extension              oex
        AddType application/x-shockwave-flash              swf
        AddType application/x-web-app-manifest+json        webapp
        AddType application/x-xpinstall                    xpi
        AddType application/xml                            atom rdf rss xml
        AddType image/webp                                 webp
        AddType image/x-icon                               ico
        AddType text/cache-manifest                        appcache manifest
        AddType text/vtt                                   vtt
        AddType text/x-component                           htc
        AddType text/x-vcard                               vcf
    </IfModule>
    
    # ------------------------------------------------------------------------------
    # | Кодировка UTF-8                                                            |
    # ------------------------------------------------------------------------------
    # Используйте кодировку UTF-8 для всего, что используется как `text / html` или` text / plain`.
    AddDefaultCharset utf-8
    # Принудительный UTF-8 для определенных форматов файлов.
    <IfModule mod_mime.c>
        AddCharset utf-8 .atom .css .js .json .rss .vtt .webapp .xml
    </IfModule>
    
    # Блокировать доступ к скрытым файлам и каталогам.
    # Это включает в себя каталоги, используемые системами контроля версий, такими как Git и SVN.
    <IfModule mod_rewrite.c>
        RewriteCond %{SCRIPT_FILENAME} -d [OR]
        RewriteCond %{SCRIPT_FILENAME} -f
        RewriteRule "(^|/)\." - [F]
    </IfModule>
    
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    # Блокировать доступ к резервным и исходным файлам.
    # Эти файлы могут быть оставлены некоторыми текстовыми редакторами и могут обеспечить большую безопасность
    # опасность, когда кто-то имеет к ним доступ.
    <FilesMatch "(^#.*#|\.(bak|config|dist|fla|inc|ini|log|psd|sh|sql|sw[op])|~)$">
        Order allow,deny
        Deny from all
        Satisfy All
    </FilesMatch>
    
    # ####################################################################################
    # # WEB PERFORMANCE                                                                  #
    # ####################################################################################
    # ------------------------------------------------------------------------------
    # | КЕШИРОВАНИЕ И СЖАТИЕ ФАЙЛОВ                                                |
    # ------------------------------------------------------------------------------
    AddType font/ttf .ttf
    AddType font/eot .eot
    AddType font/otf .otf
    AddType font/woff .woff
    <IfModule mod_deflate.c>
        # Force compression for mangled headers.
        # http://developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping
        <IfModule mod_setenvif.c>
            <IfModule mod_headers.c>
                SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
                RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
            </IfModule>
        </IfModule>
    # Сжать все выходные данные, помеченные одним из следующих MIME-типов
        # (для версий Apache ниже 2.3.7 вам не нужно включать `mod_filter`
        # и может удалить строки `<IfModule mod_filter.c>` и `</ IfModule>`
        # as `AddOutputFilterByType` все еще находится в основных директивах).
        <IfModule mod_filter.c>
            AddOutputFilterByType DEFLATE "application/atom+xml" \
                                      "application/javascript" \
                                      "application/json" \
                                      "application/ld+json" \
                                      "application/manifest+json" \
                                      "application/rdf+xml" \
                                      "application/rss+xml" \
                                      "application/schema+json" \
                                      "application/vnd.geo+json" \
                                      "application/vnd.ms-fontobject" \
                                      "application/x-font-ttf" \
                                      "application/x-javascript" \
                                      "application/x-web-app-manifest+json" \
                                      "application/xhtml+xml" \
                                      "application/xml" \
                                      "font/eot" \
                                      "font/opentype" \
                                      "image/bmp" \
                                      "image/svg+xml" \
                                      "image/vnd.microsoft.icon" \
                                      "image/x-icon" \
                                      "text/cache-manifest" \
                                      "text/css" \
                                      "text/html" \
                                      "text/javascript" \
                                      "text/plain" \
                                      "text/vcard" \
                                      "text/vnd.rim.location.xloc" \
                                      "text/vtt" \
                                      "text/x-component" \
                                      "text/x-cross-domain-policy" \
                                      "text/xml" \
                                      "font/truetype"
        </IfModule>
    </IfModule>
    
    # Сжатие файлов стилей (.css) и JavaScript файлов (.js)
    <FilesMatch "\.(js|css)$">
        SetOutputFilter DEFLATE
    </FilesMatch>
    Ответ написан