# This is a sample with suggested security and performance options Options +SymLinksIfOwnerMatch RewriteEngine On RewriteRule ^favicon\.ico$ skins/elastic/images/favicon.ico # security rules: # - deny access to files not containing a dot or starting with a dot # in all locations except installer directory RewriteRule ^(?!installer|\.well-known\/|[a-zA-Z0-9]{16})(\.?[^\.]+)$ - [F] # - deny access to some locations RewriteRule ^/?(\.git|\.tx|SQL|bin|config|logs|temp|tests|vendor|program\/(include|lib|localization|steps)) - [F] # - deny access to some documentation files RewriteRule /?(README.*|CHANGELOG.*|SECURITY.*|meta\.json|composer\..*|jsdeps.json)$ - [F] SetOutputFilter DEFLATE # prefer to brotli over gzip if brotli is available SetOutputFilter BROTLI_COMPRESS # some assets have been compressed, so no need to do it again SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|web[pm]|woff2?)$ no-brotli ExpiresActive On ExpiresDefault "access plus 1 month" FileETag MTime Size Options -Indexes # Disable page indexing Header set X-Robots-Tag "noindex, nofollow" # replace 'merge' with 'append' for Apache < 2.2.9 #Header merge Cache-Control public env=!NO_CACHE # Optional security headers # Only provides increased security if the browser supports those features # Be careful! Testing is required! They should be adjusted to your installation / user environment # HSTS - HTTP Strict Transport Security #Header always set Strict-Transport-Security "max-age=31536000; preload" env=HTTPS # HPKP - HTTP Public Key Pinning # Only template - fill with your values #Header always set Public-Key-Pins "max-age=3600; report-uri=\"\"; pin-sha256=\"\"; pin-sha256=\"\"" env=HTTPS # X-Xss-Protection # This header is used to configure the built in reflective XSS protection found in Internet Explorer, Chrome and Safari (Webkit). #Header set X-XSS-Protection "1; mode=block" # X-Frame-Options # The X-Frame-Options header (RFC), or XFO header, protects your visitors against clickjacking attacks # Already set by php code! Do not activate both options #Header set X-Frame-Options SAMEORIGIN # X-Content-Type-Options # It prevents Google Chrome and Internet Explorer from trying to mime-sniff the content-type of a response away from the one being declared by the server. #Header set X-Content-Type-Options "nosniff"