Esenjin 6241e093b1 initialisation de la v2 du projet
migration sur une solution php
2025-03-09 18:45:32 +01:00

66 lines
2.0 KiB
ApacheConf

# Activer le moteur de réécriture d'URL
RewriteEngine On
# Bloquer l'accès direct au dossier includes
RewriteRule ^includes/ - [F,L]
# Bloquer l'accès direct au dossier data
RewriteRule ^data/ - [F,L]
# Bloquer l'accès direct aux fichiers de base de données
<FilesMatch "\.(db|sqlite)$">
Order Allow,Deny
Deny from all
</FilesMatch>
# Empêcher la navigation dans les répertoires
Options -Indexes
# Définir l'encodage par défaut
AddDefaultCharset UTF-8
# Sécurité - Protection contre les XSS
<IfModule mod_headers.c>
Header set X-XSS-Protection "1; mode=block"
Header set X-Content-Type-Options "nosniff"
Header set X-Frame-Options "SAMEORIGIN"
Header set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>
# Protection contre les attaques par clickjacking
<IfModule mod_headers.c>
Header always append X-Frame-Options SAMEORIGIN
</IfModule>
# Améliorer la sécurité des cookies (à utiliser avec HTTPS)
<IfModule mod_php7.c>
php_value session.cookie_httponly 1
php_value session.use_only_cookies 1
# Décommenter la ligne suivante si le site est en HTTPS
# php_value session.cookie_secure 1
</IfModule>
# Bloquer l'accès aux fichiers sensibles
<FilesMatch "^(\.htaccess|\.htpasswd|\.git|\.svn|\.DS_Store)">
Order Allow,Deny
Deny from all
</FilesMatch>
# Performance - Mise en cache des ressources statiques
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 month"
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/webp "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
ExpiresByType image/x-icon "access plus 1 year"
</IfModule>
# Activer la compression des fichiers
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/css application/javascript text/plain text/xml application/json
</IfModule>