RewriteEngine On
# RewriteCond %{HTTPS} off
# RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

<Files ".htaccess">
    Require all denied
</Files>

# Activer le cache
<IfModule mod_expires.c>
    ExpiresActive On
    # Spécifier le délai d'expiration pour différents types de fichiers
    ExpiresByType image/jpeg "access plus 1 month"
    ExpiresByType image/avif "access plus 1 month"
    ExpiresByType image/gif "access plus 1 month"
    ExpiresByType video/mp4 "access plus 1 month"
    ExpiresByType image/png "access plus 1 month"
    ExpiresByType audio/mpeg "access plus 1 month"
</IfModule>

# Activer le cache ETag
FileETag MTime Size

# Compression Gzip
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript
</IfModule>

# Limiter les méthodes HTTP d'application tout en autorisant HEAD.
<LimitExcept GET POST HEAD>
    Require all denied
</LimitExcept>

# header
<IfModule mod_headers.c>
    #Header always edit Set-Cookie (.*) "$1; HTTPOnly; Secure"
    Header unset X-Powered-By
    Header always set X-Content-Type-Options "nosniff"
    Header set X-Permitted-Cross-Domain-Policies "none"
</IfModule>


# Activation du module de réécriture d'URL :
RewriteRule ^articles$   index.php?module=articles [L]
RewriteRule ^login$   index.php?module=login [L]
RewriteRule ^articles-p([0-9]+)$   index.php?module=articles&page=$1 [L]
RewriteRule ^articles-c([0-9]+)-p([0-9]+)$   index.php?module=articles&categorie=$1&page=$2 [L]
RewriteRule ^articles-c([0-9]+)-([A-Za-z0-9_.-]+)$   index.php?module=articles&categorie=$1 [L]
RewriteRule ^page-i([0-9]+)$   index.php?module=pages&article=$1 [L]
RewriteRule ^page-i([0-9]+)-([A-Za-z0-9_.-]+)$   index.php?module=pages&article=$1-$2 [L]

# Administration : routes lisibles, sans token de session dans l'URL.
RewriteRule ^admin/tools$ admin/admin.php [L,QSA]
RewriteRule ^admin/tools-articles$ admin/admin.php?module=articles [L,QSA]
RewriteRule ^admin/tools-articles-e-([0-9]+)$ admin/admin.php?module=articles&action=edit&id=$1 [L,QSA]
RewriteRule ^admin/tools-categories$ admin/admin.php?module=categories [L,QSA]
RewriteRule ^admin/tools-categories-e-([0-9]+)$ admin/admin.php?module=categories&action=edit&id=$1 [L,QSA]
RewriteRule ^admin/tools-menu$ admin/admin.php?module=menu [L,QSA]
RewriteRule ^admin/tools-menu-e-([0-9]+)$ admin/admin.php?module=menu&action=edit&id=$1 [L,QSA]
RewriteRule ^admin/tools-config$ admin/admin.php?module=config [L,QSA]
RewriteRule ^admin/tools-modules$ admin/admin.php?module=modules [L,QSA]
RewriteRule ^admin/tools-updates$ admin/admin.php?module=updates [L,QSA]

# Les URL publiques inconnues passent par la vue 404 du CMS. Les fichiers et
# dossiers existants (dont /admin/) restent servis normalement.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !/admin/ [NC]
RewriteRule ^ index.php?module=nomodule [L,QSA]
