# roundcubemail-1.6.10/.htaccess

# ::do_not_edit::
# ::maintainer::

<IfModule mod_rewrite.c>
  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]
</IfModule>

<IfModule mod_deflate.c>
  SetOutputFilter DEFLATE
</IfModule>

# prefer to brotli over gzip if brotli is available
<IfModule mod_brotli.c>
  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
</IfModule>

<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 1 month"
</IfModule>

FileETag MTime Size

<IfModule mod_autoindex.c>
  Options -Indexes
</IfModule>

<IfModule mod_headers.c>
  # 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"

</IfModule>
