generoi/bedrock/genero/web/.htaccess - Htaccess File


# Protect files and directories from prying eyes.
<FilesMatch ".(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(.php)?|xtmpl)(~|.sw[op]|.bak|.orig|.save)?$|^(..*|Entries.*|Repository|Root|Tag|Template)$|^#.*#$|.php(~|.sw[op]|.bak|$">
  Order allow,deny

# Allow cross domain requests
<IfModule mod_headers.c>
  Header add Access-Control-Allow-Origin "*"

# 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"

  # `mod_headers` cannot match based on the content-type, however,
  # the `X-UA-Compatible` response header should be send only for
  # HTML documents and not for the other resources.
  <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

# Serve resources with the proper media types (f.k.a. MIME types).
<IfModule mod_mime.c>
  # Data interchange
  AddType application/atom+xml                        atom
  AddType application/json                            json map topojson
  AddType application/ld+json                         jsonld
  AddType application/rss+xml                         rss
  AddType application/vnd.geo+json                    geojson
  AddType application/xml                             rdf xml

  # JavaScript
  AddType application/javascript                      js

  # Manifest files
  AddType application/manifest+json                   webmanifest
  AddType application/x-web-app-manifest+json         webapp
  AddType text/cache-manifest                         appcache

  # Media files
  AddType audio/mp4                                   f4a f4b m4a
  AddType audio/ogg                                   oga ogg opus
  AddType image/bmp                                   bmp
  AddType image/svg+xml                               svg svgz
  AddType image/webp                                  webp
  AddType video/mp4                                   f4v f4p m4v mp4
  AddType video/ogg                                   ogv
  AddType video/webm                                  webm
  AddType video/x-flv                                 flv

  # Serving `.ico` image files with a different media type
  # prevents Internet Explorer from displaying then as images:
  AddType image/x-icon                                cur ico

  # Web fonts
  AddType application/font-woff                       woff
  AddType application/font-woff2                      woff2
  AddType application/               eot
  AddType application/x-font-ttf                      ttc ttf
  AddType font/opentype                               otf

  # Other
  AddType application/octet-stream                    safariextz
  AddType application/x-bb-appworld                   bbaw
  AddType application/x-chrome-extension              crx
  AddType application/x-opera-extension               oex
  AddType application/x-xpinstall                     xpi
  AddType text/vcard                                  vcard vcf
  AddType text/vnd.rim.location.xloc                  xloc
  AddType text/vtt                                    vtt
  AddType text/x-component                            htc

# PHP 5, Apache 1 and 2.
<IfModule mod_php5.c>
  php_flag magic_quotes_gpc                 off
  php_flag magic_quotes_sybase              off
  php_flag register_globals                 off
  php_flag session.auto_start               off
  php_value mbstring.http_input             pass
  php_value mbstring.http_output            pass
  php_flag mbstring.encoding_translation    off

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

# BEGIN WordPress Multisite
# <IfModule mod_rewrite.c>
# RewriteEngine On
# RewriteBase /
# RewriteRule ^index.php$ - [L]
# # add a trailing slash to /wp-admin
# RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
# RewriteCond %{REQUEST_FILENAME} -f [OR]
# RewriteCond %{REQUEST_FILENAME} -d
# RewriteRule ^ - [L]
# RewriteRule ^(wp-(content|admin|includes).*) wp/$1 [L]
# RewriteRule ^(.*.php)$ wp/$1 [L]
# RewriteRule . index.php [L]
# </IfModule>
# END WordPress Multisite

# Rules to correctly serve gzip compressed CSS and JS files.
# Requires both mod_rewrite and mod_headers to be enabled.
<IfModule mod_headers.c>
  # Serve gzip compressed CSS files if they exist and the client accepts gzip.
  RewriteCond %{HTTP:Accept-encoding} gzip
  RewriteCond %{REQUEST_FILENAME}.gz -s
  RewriteRule ^(.*).css $1.css.gz [QSA]

  # Serve gzip compressed JS files if they exist and the client accepts gzip.
  RewriteCond %{HTTP:Accept-encoding} gzip
  RewriteCond %{REQUEST_FILENAME}.gz -s
  RewriteRule ^(.*).js $1.js.gz [QSA]

  # Serve correct content types, and prevent mod_deflate double gzip.
  RewriteRule .css.gz$ - [T=text/css,E=no-gzip:1]
  RewriteRule .js.gz$ - [T=text/javascript,E=no-gzip:1]

  <FilesMatch "(.js.gz|.css.gz)$">
    # Serve correct encoding type.
    Header set Content-Encoding gzip
    # Force proxies to cache gzipped & non-gzipped css/js files separately.
    Header append Vary Accept-Encoding

<IfModule mod_deflate.c>
  # Force compression for mangled `Accept-Encoding` request headers
  <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

  # Gzip resources without a precreated gzip
  <IfModule mod_filter.c>
      AddOutputFilterByType DEFLATE "application/atom+xml" 

  <IfModule mod_mime.c>
    AddEncoding gzip              svgz

<IfModule mod_expires.c>
  # Enable expirations.
  ExpiresActive On
  ExpiresDefault                                      "access plus 1 month"

  # CSS
  ExpiresByType text/css                              "access plus 1 year"

  # Data interchange
  ExpiresByType application/atom+xml                  "access plus 0 hour"
  ExpiresByType application/rdf+xml                   "access plus 0 hour"
  ExpiresByType application/rss+xml                   "access plus 0 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"

  # Favicon (cannot be renamed!) and cursor images
  ExpiresByType image/              "access plus 1 month"
  ExpiresByType image/x-icon                          "access plus 1 month"

  # HTML
  ExpiresByType text/html                             "access plus 0 seconds"

  # JavaScript
  ExpiresByType application/javascript                "access plus 1 year"
  ExpiresByType application/x-javascript              "access plus 1 year"
  ExpiresByType text/javascript                       "access plus 1 year"

  # Manifest files
  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"

  # Media files
  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"

  # Web fonts
  ExpiresByType application/         "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"

  # Other
  ExpiresByType text/x-cross-domain-policy            "access plus 1 week"

  <FilesMatch .php$>
    # Do not allow PHP scripts to be cached unless they explicitly send cache
    # headers themselves. Otherwise all scripts would have to overwrite the
    # headers set by mod_expires if they want another caching behavior. This may
    # fail if an error occurs early in the bootstrap process, and it may cause
    # problems if a non-Drupal PHP file is installed in a subdirectory.
    ExpiresActive Off

On Github License


Download PDF of Htaccess file