Dynamic-Mess.com


"The world is a dynamic mess of jiggling things..."

Commandes utiles pour votre fichier htaccess

Article posté le 21-02-2014 dans la catégorie Web

Les fichiers de type .htaccess sont bien utiles pour réguler, sécuriser et paramétrer les accès à votre site Internet et à ses ressources. Voici donc quelques éléments souvent utilisés, cette page étant amenée à être complétée régulièrement :

1- Variables personnalisées

Utiles par exemple pour stocker des identifiants de connexion à la BDD, la variable $_SERVER peut être intéressante. Pa exemple, dans votre .htacces :

SetEnv Pseudo Eric

Vous pourrez afficher :

echo $_SERVER['Eric'];

De cette manière, il est plus difficile de lire directement les données : le pirate doit pouvoir
réaliser une injection de code PHP pour y accéder.

2- OVH: définir la version de PHP

SetEnv PHP_VER 5_4

 

3- 404 personnalisée

ErrorDocument 404 http://www.mon-site.com/404.php

 

4- Interdire l'accès et le listage d'un répertoire

order deny,allow 
deny from all 

Note : si vous souhaitez uniquement interdire le listage, mais autoriser l'accès aux fichiers du répertoire, utilisez ceci :

Options -Indexes

 

5- Activer la réécriture d'URL

RewriteEngine on 

 

6- Rediriger toutes les requêtes vers un fichier

(sauf si le fichier spécifié dans la requête existe réellement)

# Tout rediriger vers indeX.php, sauf les fichiers...
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) /index.php

Ideal si vous comptez faire votre propre moteur pour votre site.

 

7- Spécifier un fichier index différent :

DirectoryIndex nom_du_fichier

 

8- Quelques redirections :

RewriteRule ^contact$   Controllers/contact.php
RewriteRule ^contact/$   Controllers/contact.php

Redirige vers la page contact, avec et sans le slash

RewriteRule ^Admin/([0-9a-zA-Z-]+).php   Admin/$1.php

Redirige vers la page demandée, derrière Admin.

RewriteRule ^$ http://www.toto.fr [R=301,NC]

Redirige la home vers toto.fr


RewriteRule ^([0-9a-zA-Z-]+)$ http://www.toto.fr/$1 [R=301,NC]

Redirige vers toto.fr/ + le nom de la page demandée

RewriteRule ^([0-9a-zA-Z-]+)/([0-9a-zA-Z-]+)$ http://www.toto.fr/$1/$2 [R=301,NC]

Même que la précédente, mais page niveau 2.

9- Bloquer des adresses IP

deny from 10.1.2.3 # interdiction d'accès à l'adresse IP 10.1.2.3
deny from 10.1 # interdictions d'accès aux adresses IP commençant par 10.1

 

10- Forcer le "/" à la fin de l'url

Attention : si vos liens (dans votre code) n'ont pas de "/" à la fin, les moteurs de recherche y verront une redirection 301. Pour l'utilisateur pas de soucis c'est transparent, par contre d'un point de vue SEO...

RewriteEngine on 

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

 

11- Gérer la mise en cache de fichiers :

 Dans cet exemple, les fichiers portant les extension concernées auront une date d'expiration de 2 jours : 

<FilesMatch ".(js|.min.js)$">
<IfModule mod_expires.c>    
ExpiresActive on 
ExpiresDefault "access plus 2 days"
</IfModule>
Header unset ETag 
FileETag None
</FilesMatch>

 

Assurez-vous que les modes expire (mod_expires) et headers (mod_headers) sont activés. Si ce n'est pas le cas concernant pour le dernier, enlevez les deux lignes Header unsetETag et FileETag None. Pour rappel, les ETags pour Entity Tags sont des mécanismes qu'utilisent les navigateurs et les serveurs pour déterminer si la version la plus récente d'un fichier se trouve sur le serveur ou dans le cache du navigateur. Désactiver ce mécanism rendrait le chargement plus rapide.

12- Activer la compression de fichier

Nécessite le module deflate (mod_deflate) :

SetOutputFilter DEFLATE

SetOutputFilter DEFLATE

 

13-Rediriger automatiquement vers HTTPS

 

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.domaine.com/$1 [R,L]

 

14- Liste blanche pour une URL

RewriteCond %{REMOTE_ADDR} !^xx.xx.xx.xx
RewriteRule ^(index.php/)?admin/ - [L,R=403]

Tweet
comments powered by Disqus