<IfModule mod_rewrite.c>
    RewriteEngine On

    # Send would-be 404 requests to Craft
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !^/(favicon\.ico|apple-touch-icon.*\.png)$ [NC]
    RewriteRule (.+) index.php?p=$1 [QSA,L]

    # Add www to url
#     RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
#     RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

    # Remove www from url
#      RewriteCond %{HTTP_HOST} ^www\.
#      RewriteRule ^(.*)$ http://yourdomain.com/$1 [R=301,L]

    # Force https
#      RewriteCond %{HTTPS} off
#      RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

#Block access to "hidden" directories or files starting with period.
# RewriteCond %{SCRIPT_FILENAME} -d [OR]
#   RewriteCond %{SCRIPT_FILENAME} -f
#   RewriteRule "(^|/)\." - [F]

# Audio
AddType audio / ogg .oga ogg
AddType audio / mp4 .m4a.f4a.f4b
# Video
AddType video / ogg .ogv
AddType video / mp4 .mp4.m4v.f4v.f4p
AddType video / webm .webm
AddType video / x - flv .flv
# Images
AddType image / x - icon .ico
AddType image / webp .webp
AddType image / gif .gif.GIF
AddType image / jpeg .jpeg.jpg.jpe.JPG
# Fonts
AddType application / vnd.ms - fontobject .eot
AddType application / x - font - ttf .ttf.ttc
AddType font / opentype .otf
AddType application / x - font - woff .woff
# JAVASCRIPT
AddType application / javascript .js.jsonp
AddType application / json json
# Extras
AddType text / x - component .htc
AddType application / xml .rss.atom.xml.rdf
AddType application / x - chrome - extension .crx
AddType application / x - opera - extension .oex
AddType application / x - xpinstall .xpi
AddType application / octet - stream .safariextz
AddType application / x - web - app - manifest + jsonp .webapp
AddType text / x - vcard .vcf
AddType application / x - shockwave - flash .swf
</IfModule>

#Block access to backup and source files
<FilesMatch "(\.(bak|config|sql|fla|psd|ini|log|sh|inc|swp|dist)|~)$">
   Order allow,deny
   Deny from all
   Satisfy All
</FilesMatch>

#Increase cookie security
<IfModule php5_module>
    php_value session.cookie_httponly true
</IfModule>

#GZIP Compression
#<IfModule mod_deflate.c>
    # HTML, TXT, CSS, JavaScript, JSON, XML, HTC:
#       <IfModule filter_module>
#           FilterDeclare   COMPRESS
#           FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/html
#           FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/css
#           FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/plain
#           FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/xml
#           FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/x-component
#           FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/javascript
#           FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/json
#           FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/xml
#           FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/xhtml+xml
#           FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/rss+xml
#           FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/atom+xml
#           FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/vnd.ms-fontobject
#           FilterProvider  COMPRESS  DEFLATE resp=Content-Type $image/svg+xml
#           FilterProvider  COMPRESS  DEFLATE resp=Content-Type $image/x-icon
#           FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/x-font-ttf
#           FilterProvider  COMPRESS  DEFLATE resp=Content-Type $font/opentype
#           FilterChain     COMPRESS
#           FilterProtocol  COMPRESS  DEFLATE change=yes;byteranges=no
#       </IfModule>
#       <IfModule !mod_filter.c>
        # Legacy versions of Apache
#         AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
#         AddOutputFilterByType DEFLATE application/javascript
#         AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
#         AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml application/atom+xml
#         AddOutputFilterByType DEFLATE image/x-icon image/svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype
#       </IfModule>
#</IfModule>

#Leverage browser caching
<IfModule mod_expires.c>
    ExpiresActive on
    ExpiresDefault                                      "access plus 1 month"

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

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

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

  # HTML - Behält die Website eine Stunde im Cache, neues wird erst nach Ablauf einer Stunde
  # angezeigt. Wenn nicht gewuenscht, bei 3600 eine Null eintragen
    ExpiresByType text/html                             "access plus 3600 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

    # Embedded OpenType (EOT)
    ExpiresByType application/vnd.ms-fontobject         "access plus 1 month"
    ExpiresByType font/eot                              "access plus 1 month"

    # OpenType
    ExpiresByType font/opentype                         "access plus 1 month"

    # TrueType
    ExpiresByType application/x-font-ttf                "access plus 1 month"

    # Web Open Font Format (WOFF) 1.0
    ExpiresByType application/font-woff                 "access plus 1 month"
    ExpiresByType application/x-font-woff               "access plus 1 month"
    ExpiresByType font/woff                             "access plus 1 month"

    # Web Open Font Format (WOFF) 2.0
    ExpiresByType application/font-woff2                "access plus 1 month"

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



