# ================================
# BLOCK cronjob (RETURN 404)
# ================================
RewriteEngine On
# Redirect cronjob to homepage
RewriteRule ^cronjob$ / [R=301,L]
RewriteRule ^cronjob/ / [R=301,L]


# ================================
# Laravel main rules
# ================================
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

# Remove trailing slash
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^ %1 [R=301,L]

# Redirect everything to /public
RewriteCond %{REQUEST_URI} !^/public
RewriteRule ^(.*)$ public/$1 [L]

# ================================
# Security hardening
# ================================
Options -Indexes

<Files .htaccess>
    Order allow,deny
    Deny from all
</Files>

<Files ~ "\.(env|json|config\.js|md|gitignore|gitattributes|lock)$">
    Order allow,deny
    Deny from all
</Files>

# ================================
# Cache headers
# ================================
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/jpg "access plus 1 year"
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType image/gif "access plus 1 year"
    ExpiresByType image/png "access plus 1 year"
    ExpiresByType text/css "access plus 1 month"
    ExpiresByType text/x-javascript "access plus 1 month"
    ExpiresByType application/x-shockwave-flash "access plus 1 month"
    ExpiresByType image/x-icon "access plus 1 year"
    ExpiresDefault "access plus 1 days"
</IfModule>
