elivz/FrontendStarterKit/master/src/rootfiles/.htaccess - Htaccess File

elivz/FrontendStarterKit/master/src/rootfiles/.htaccess

# Customize what Apache returns to the client in case of an error.
ErrorDocument 404 /404

# Disable the pattern matching based on filenames.
Options -MultiViews

# Force Internet Explorer 8/9/10 to render pages in the highest mode
# available in the various cases when it may not.
<IfModule mod_headers.c>
    Header set X-UA-Compatible "IE=edge"
    <FilesMatch ".(appcache|atom|bbaw|bmp|crx|css|cur|eot|f4[abpv]|flv|geojson|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|topojson|tt[cf]|txt|vcard|vcf|vtt|webapp|web[mp]|webmanifest|woff2?|xloc|xml|xpi)$">
        Header unset X-UA-Compatible
    </FilesMatch>
</IfModule>

# Serve all resources with the media type `charset` parameter set to `UTF-8`.
AddDefaultCharset utf-8
<IfModule mod_mime.c>
    AddCharset utf-8 .atom 
                     .bbaw 
                     .css 
                     .geojson 
                     .js 
                     .json 
                     .jsonld 
                     .manifest 
                     .rdf 
                     .rss 
                     .topojson 
                     .vtt 
                     .webapp 
                     .webmanifest 
                     .xloc 
                     .xml
</IfModule>

# ######################################################################
# # REWRITES                                                           #
# ######################################################################

<IfModule mod_rewrite.c>
    RewriteEngine On
    Options +FollowSymlinks
    RewriteBase /

    RewriteCond %{HTTPS} =on
    RewriteRule ^ - [env=proto:https]
    RewriteCond %{HTTPS} !=on
    RewriteRule ^ - [env=proto:http]

    # Rewrite to www.domain.com
    RewriteCond %{HTTP_HOST} !^(www|staging|dev). [NC]
    RewriteCond %{SERVER_ADDR} !=127.0.0.1
    RewriteCond %{SERVER_ADDR} !=::1
    RewriteRule ^ %{ENV:PROTO}://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

    # Send non-file requests to the CMS
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule (.+) index.php?p=$1 [QSA,L]
</IfModule>

# Block access to directories without a default document.
<IfModule mod_autoindex.c>
    Options -Indexes
</IfModule>

# Compression
<IfModule mod_deflate.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"
</IfModule>

<IfModule mod_headers.c>
    <FilesMatch ".(js|css|xml|gz)$">
        Header append Vary: Accept-Encoding
    </FilesMatch>
</IfModule>

# Remove `ETags` as resources are sent with far-future expires headers.
<IfModule mod_headers.c>
    Header unset ETag
</IfModule>
FileETag None

# Serve resources with far-future expires headers.
<IfModule mod_expires.c>
    ExpiresActive on
    ExpiresDefault                                      "access plus 1 month"
    ExpiresByType text/css                              "access plus 1 year"
    ExpiresByType application/atom+xml                  "access plus 1 hour"
    ExpiresByType application/rdf+xml                   "access plus 1 hour"
    ExpiresByType application/rss+xml                   "access plus 1 hour"
    ExpiresByType application/json                      "access plus 0 seconds"
    ExpiresByType application/ld+json                   "access plus 0 seconds"
    ExpiresByType application/schema+json               "access plus 0 seconds"
    ExpiresByType application/vnd.geo+json              "access plus 0 seconds"
    ExpiresByType application/xml                       "access plus 0 seconds"
    ExpiresByType text/xml                              "access plus 0 seconds"
    ExpiresByType image/vnd.microsoft.icon              "access plus 1 week"
    ExpiresByType image/x-icon                          "access plus 1 week"
    ExpiresByType text/html                             "access plus 0 seconds"
    ExpiresByType application/javascript                "access plus 1 year"
    ExpiresByType application/x-javascript              "access plus 1 year"
    ExpiresByType text/javascript                       "access plus 1 year"
    ExpiresByType application/manifest+json             "access plus 1 week"
    ExpiresByType application/x-web-app-manifest+json   "access plus 0 seconds"
    ExpiresByType text/cache-manifest                   "access plus 0 seconds"
    ExpiresByType audio/ogg                             "access plus 1 month"
    ExpiresByType image/bmp                             "access plus 1 month"
    ExpiresByType image/gif                             "access plus 1 month"
    ExpiresByType image/jpeg                            "access plus 1 month"
    ExpiresByType image/png                             "access plus 1 month"
    ExpiresByType image/svg+xml                         "access plus 1 month"
    ExpiresByType image/webp                            "access plus 1 month"
    ExpiresByType video/mp4                             "access plus 1 month"
    ExpiresByType video/ogg                             "access plus 1 month"
    ExpiresByType video/webm                            "access plus 1 month"
    ExpiresByType application/vnd.ms-fontobject         "access plus 1 month"
    ExpiresByType font/eot                              "access plus 1 month"
    ExpiresByType font/opentype                         "access plus 1 month"
    ExpiresByType application/x-font-ttf                "access plus 1 month"
    ExpiresByType application/font-woff                 "access plus 1 month"
    ExpiresByType application/x-font-woff               "access plus 1 month"
    ExpiresByType font/woff                             "access plus 1 month"
    ExpiresByType application/font-woff2                "access plus 1 month"
    ExpiresByType text/x-cross-domain-policy            "access plus 1 week"
</IfModule>

On Github License

Files

Download PDF of Htaccess file
DEFLATE, ENV, HTTP_HOST, HTTPS, PROTO, REQUEST_FILENAME, REQUEST_URI, SERVER_ADDR

Comments

Apache