1 000 FAQ, 500 tutoriels et vidéos explicatives. Ici, il n'y a que des solutions !
Support de l'URL rewriting
La réécriture d'URL à la volée est une technique visant à changer le nom apparent de pages Web mais le changement n'est en fait opéré que par des redirections virtuelles du nouveau nom (apparent) vers l'ancien nom (invisible au visiteur). Le nom de la page ne change donc pas en lui-même.
Cela sert en général à rendre le nom des pages plus "propres" en cachant les paramètres d'URL passés aux pages dynamiques par exemple. Personne ne peut plus voir qu'il s'agit de pages dynamiques avec des URL à rallonge. En plus d'être plus joli pour le visiteur, cela a surtout un grand intérêt pour le référencement des pages Web car les moteurs de recherche ne prennent en général pas les URL avec trop de paramètres.
Actions Ă effectuer
1. RĂ©Ă©crire le nom des pages
On pourrait transformer l'URL de la page "article.php?id=25&categorie=4&page=3" en "article-25-4-3.html" ou bien même "titre-article-25-4-3.html". Voici le contenu du fichier .htaccess qui permet de réaliser cela, en admettant que le fichier article.php soit situé dans le répertoire web/admin/ du serveur.
Options +FollowSymlinksRewriteEngine onRewriteBase /admin/RewriteRule ^article-([0-9]*).([0-9]*).([0-9]*).html$ article.php?id=$1&categorie=$2&page=$3 [L]
La ligne "Options +FollowSymlinks" permet de suivre les liens symboliques, elle n'est pas toujours nécessaire.
La ligne "RewriteEngine on" permet d'activer le mod_rewrite de Apache, c'est-à -dire d'activer la réécriture d'URL.
La ligne "RewriteBase /admin/" permet de définir une fois pour toute dans quel répertoire nous travaillons avec les fichiers qui vont suivre (article.php...).
La ligne "RewriteRule", qui peut paraître un peu plus compliquée, est une ligne à ajouter pour chaque URL que vous voudrez réécrire.
Pour notre exemple, nous n'en avons qu'une qui se décompose ainsi:
Le premier caractère "^" : indique le début d'un nom de fichier virtuel à rediriger.
Le caractère "$" après ".html" : indique pour sa part la fin de ce nom de fichier virtuel.
Chaque groupement de "([0-9]*)" : est basé sur les expressions régulières et indique qu'une succession de chiffres de 0 à 9 sera présente puis récupérée pour être placée dans la variable correspondante "$1", "$2" et "$3" que l'on voit en fin de ligne.
Le signe "[L]" signifie une fin de ligne, c'est la fin de la règle à réécrire pour cet élément.
Lorsqu'un visiteur de votre site demandera la page "article-25-4-3.html", le fichier .htaccess va maintenant le rediriger automatiquement vers la page "article.php?id=25&categorie=4&page=3" sans que ce ne soit visible pour lui.
Attention: même si vos règles de réécriture d'URL sont en place et fonctionnent correctement, on pourra toujours accéder aux pages en utilisant l'ancienne URL avec les paramètres. D'où la nécessité de bien changer tous les liens de votre site Web pour qu'ils soient au nouveau format.
Pour faire des règles de réécriture plus complexe, reportez-vous à la documentation d'Apache sur l'URL rewriting.
2. Redirection permanente vers un deuxième domaine
Dans le cas où vous possédez plusieurs domaines pour un même site et que vous souhaitez pouvoir tous les communiquer, vous pouvez rediriger toutes les requêtes d'ouverture de pages vers un autre domaine, de façon à ce que votre domaine principal reste affiché en barre d'adresse. Par exemple si "www.domaine.xyz" et "www.mon-domaine.xyz" pointent vers le même site et que le premier cité est le domaine principal, voici le contenu du fichier .htaccess à mettre en place à la racine du premier:
RewriteEngine OnRewriteRule ^(.*)$ http://www.mon-domaine.xyz/$1 [R=301]
Cela aura pour effet de récupérer le nom de chaque page appelée sur "www.domaine.xyz" et de l'ouvrir sur "www.mon-domaine.xyz" de manière transparente pour l'internaute. [R=301] signifie redirection permanente.