# Kirby .htaccess

# rewrite rules
<IfModule mod_rewrite.c>

  # enable awesome urls. i.e.:
  # http://yourdomain.com/about-us/team
  RewriteEngine on
  
  RewriteCond %{HTTP_HOST} !^sterzy\.com$
  RewriteRule (.*) https://sterzy.com/$1 [L,R=301]

  RewriteCond %{HTTPS} !=on

  # redirect all trafic to https
  RewriteCond %{ENV:HTTPS} !=on
  RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

  Redirect 301 /.well-known/carddav /cloud/remote.php/carddav                   
  Redirect 301 /.well-known/caldav /cloud/remote.php/caldav
 
  # block files and folders beginning with a dot, such as .git
  # except for the .well-known folder, which is used for Let's Encrypt and security.txt
  RewriteRule (^|/)\.(?!well-known\/) index.php [L]

  # make sure to set the RewriteBase correctly
  # if you are running the site in a subfolder.
  # Otherwise links or the entire site will break.
  #
  # If your homepage is http://yourdomain.com/mysite
  # Set the RewriteBase to:
  #
  # RewriteBase /mysite

  # block text files in the content folder from being accessed directly
  RewriteRule ^content/(.*)\.(txt|md|mdown)$ index.php [L]

  # block all files in the site folder from being accessed directly
  RewriteRule ^site/(.*) index.php [L]

  # Enable authentication header
  SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

  # block all files in the kirby folder from being accessed directly
  RewriteRule ^kirby/(.*) index.php [L]

  # make site links work
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*) index.php [L]

</IfModule>

# Additional recommended values
# Remove comments for those you want to use.
#
# AddDefaultCharset UTF-8
#
# php_flag short_open_tag on

RequestHeader set X-Forwarded-Proto https
RequestHeader set X-Forwarded-Ssl on

# Enable caching of css and js
ExpiresActive On

ExpiresByType application/x-javascript M604800
ExpiresByType text/css M604800
ExpiresByType text/x-javascript M604800

# compress text file responses
<IfModule mod_deflate.c>

  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE application/json
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/x-javascript

</IfModule>