Htaccess File

freaktechnik/nightingale-website/master/.htaccess

DEFLATE, HTTP_HOST, REQUEST_FILENAME, REQUEST_URI, static
# ----------------------------------------------------------------------
# Based on the Contao CMS (contao.org)
# and H5BP (h5bp.com) .htaccess templates
# 
# H5BP is licensed under the MIT License (opensource.org/licenses/MIT)
# Contao is licensed under the LGPL (gnu.org/licenses/lgpl-3.0.html)
# ----------------------------------------------------------------------

# ----------------------------------------------------------------------
# Better website experience for IE users
# ----------------------------------------------------------------------

# Force the latest IE version, in various cases when it may fall back to IE7 mode
# github.com/rails/rails/commit/123eb25#commitcomment-118920
# Use ChromeFrame if it's installed for a better experience for the poor IE folk
# 
# Will not work on fCGI scripts
<IfModule mod_headers.c>
    Header set X-UA-Compatible "IE=Edge,chrome=1"
    <FilesMatch ".(appcache|crx|css|eot|gif|htc|ico|jpe?g|js|m4a|m4v|manifest|mp4|oex|oga|ogg|ogv|otf|pdf|png|safariextz|svg|svgz|ttf|vcf|webm|webp|woff|xml|xpi)$">
        Header unset X-UA-Compatible
    </FilesMatch>
</IfModule>

# ----------------------------------------------------------------------
# Webfont access
# ----------------------------------------------------------------------

# Allow access from all domains for webfonts
<IfModule mod_headers.c>
    <FilesMatch ".(ttf|ttc|otf|eot|woff|font.css)$">
        Header set Access-Control-Allow-Origin "*"
    </FilesMatch>
</IfModule>

# ----------------------------------------------------------------------
# Proper MIME type for all files
# ----------------------------------------------------------------------

<IfModule mod_mime.c>
    # JavaScript
    # Normalize to standard type (it's sniffed in IE anyways)
    # tools.ietf.org/html/rfc4329#section-7.2
    AddType application/javascript                 js jsonp
    AddType application/json                       json
    
    # Audio
    AddType audio/mp4                              m4a f4a f4b
    AddType audio/ogg                              oga ogg
    
    # Video
    AddType video/mp4                              mp4 m4v f4v f4p
    AddType video/ogg                              ogv
    AddType video/webm                             webm
    AddType video/x-flv                            flv
    
    # SVG
    # Required for svg webfonts on iPad
    # twitter.com/FontSquirrel/status/14855840545
    AddType image/svg+xml                          svg svgz
    AddEncoding gzip                               svgz
    
    # Webfonts
    AddType application/vnd.ms-fontobject          eot
    AddType application/x-font-ttf                 ttf ttc
    AddType application/x-font-woff                woff
    AddType font/opentype                          otf
    
    # Assorted types
    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                        rss atom xml rdf
    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>

# ----------------------------------------------------------------------
# Gzip compression
# ----------------------------------------------------------------------

<IfModule mod_deflate.c>
    # Force deflate for mangled headers 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>
      
    <IfModule mod_filter.c>
        AddOutputFilterByType DEFLATE application/atom+xml 
                                      application/javascript 
                                      application/json 
                                      application/rss+xml 
                                      application/vnd.ms-fontobject 
                                      application/x-font-ttf 
                                      application/xhtml+xml 
                                      application/xml 
                                      font/opentype 
                                      image/svg+xml 
                                      image/x-icon 
                                      text/css 
                                      text/html 
                                      text/plain 
                                      text/x-component 
                                      text/xml
    </IfModule>
</IfModule>

# ----------------------------------------------------------------------
# Expires headers (for better cache control)
# ----------------------------------------------------------------------

<IfModule mod_expires.c>
    ExpiresActive on
    
    ExpiresByType text/cache-manifest                 "access plus 0 seconds"
    ExpiresByType text/html                           "access plus 0 seconds"
    ExpiresByType text/xml                            "access plus 0 seconds"
    ExpiresByType application/xml                     "access plus 0 seconds"
    ExpiresByType application/json                    "access plus 0 seconds"
    ExpiresByType application/rss+xml                 "access plus 1 hour"
    ExpiresByType application/atom+xml                "access plus 1 hour"
    ExpiresByType image/gif                           "access plus 1 month"
    ExpiresByType image/png                           "access plus 1 month"
    ExpiresByType image/jpeg                          "access plus 1 month"
    ExpiresByType image/x-icon                        "access plus 1 month"
    ExpiresByType video/ogg                           "access plus 1 month"
    ExpiresByType audio/ogg                           "access plus 1 month"
    ExpiresByType video/mp4                           "access plus 1 month"
    ExpiresByType video/webm                          "access plus 1 month"
    ExpiresByType text/x-component                    "access plus 1 month"
    ExpiresByType application/x-font-ttf              "access plus 1 month"
    ExpiresByType font/opentype                       "access plus 1 month"
    ExpiresByType application/x-font-woff             "access plus 1 month"
    ExpiresByType image/svg+xml                       "access plus 1 month"
    ExpiresByType application/vnd.ms-fontobject       "access plus 1 month"
    ExpiresByType text/css                            "access plus 1 year"
    ExpiresByType application/javascript              "access plus 1 year"
</IfModule>

# ----------------------------------------------------------------------
# ETag removal
# ----------------------------------------------------------------------

# FileETag None is not enough for every server.
<IfModule mod_headers.c>
    Header unset ETag
</IfModule>

# Since we're sending far-future expires, we don't need ETags for static content.
# developer.yahoo.com/performance/rules.html#etags
FileETag None

# ----------------------------------------------------------------------
# Prevent 404 errors for non-existing redirected folders
# ----------------------------------------------------------------------

# Without -MultiViews, Apache will give a 404 for a rewrite if a folder of the
# same name does not exist.
# webmasterworld.com/apache/3808792.htm
Options -MultiViews

# ----------------------------------------------------------------------
# UTF-8 encoding
# ----------------------------------------------------------------------

# Use UTF-8 encoding for anything served text/plain or text/html
AddDefaultCharset utf-8

# Force UTF-8 for a number of file formats
AddCharset utf-8 .atom .css .js .json .rss .vtt .xml

# ----------------------------------------------------------------------
# Start rewrite engine
# ----------------------------------------------------------------------

<IfModule mod_rewrite.c>
    RewriteEngine On
    
    # Adjust RewriteBase to whatever you need
    RewriteBase /
    
    # Uncomment to redirect domains without "www" to the "www" subdomain.
    #RewriteCond %{HTTP_HOST} !^www..+$ [NC]
    #RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    
    # Uncomment to redirect domains with "www" to the empty domain.
    #RewriteCond %{HTTP_HOST} ^www.(.+)$ [NC]
    #RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
    
    # Do not rewrite requests for static files or folders such as style sheets,
    # images, movies or text documents. Do not add the URL suffix here!
    <FilesMatch ".(htm|php|js|css|htc|png|gif|jpe?g|ico|xml|csv|txt|swf|flv|mp3|mp4|webm|ogv|eot|woff|svg|ttf|pdf|gz)$">
        RewriteEngine Off
    </FilesMatch>
    
    # Further rewrite rules here
    #RewriteCond %{REQUEST_FILENAME} !-f
    #RewriteCond %{REQUEST_FILENAME} !-d
    #...
</IfModule>

# ----------------------------------------------------------------------
# A little more security
# ----------------------------------------------------------------------

# Prevent access to template files
<FilesMatch ".(tpl|html5|xhtml)$">
    Order allow,deny
    Deny from all
</FilesMatch>

# ----------------------------------------------------------------------
# Further header adjustments
# ----------------------------------------------------------------------

<IfModule mod_headers.c>    
    # Add a Vary Accept-Encoding header for the compressed resources. If you
    # modify the file types above, make sure to change them here accordingly.
    # developer.yahoo.com/performance/rules.html#gzip
    <FilesMatch ".(js|css|xml|gz)$">
        Header append Vary Accept-Encoding
    </FilesMatch>
</IfModule>
Exit mobile version