Retour à la liste des tutoriels
Mon site web est accessible par les URL http://anael.eu et http://www.anael.eu .
Afin d'optimiser le référencement par les robots des métamoteurs de recherche, il convient que chaque contenu ne soit accessible par une seule url. Or, http://anael.eu/ et http://www.anael.eu sont considérés comme 2 URL bien distinctes !
Je vais donc utiliser un module d'apache : le mod rewrite qui permet de modifier les urls des pages visitées.
Pour activer le mod rewrite, je vais utiliser la commande apache de gestion des mods a2enmod :
a2enmod rewrite
Le système va nous confirmer la bonne activation du module :
Enabling module rewrite. Run '/etc/init.d/apache2 restart' to activate new configuration!
Il convient de relancer apache afin qu'il prenne en compte la nouvelle configuration :
/etc/init.d/apache2 restart
Je vais tenter infructueusement d'activer le mod rewrite par le biais d'un fichier .htaccess .
J'édite donc un fichier .htaccess situé dans le répertoire racine web (soit /var/www/anael.eu/www/)
nano /var/www/anael.eu/www/.htaccess
J'active le mod rewrite :
RewriteEngine On
Je pose une condition à la ré-écriture d'url : toutes les urls qui ne commencent pas par www.anael.eu
RewriteCond %{HTTP_HOST} !www\.anael\.eu [NC]
A noter :
L'instruction à réaliser si la condition précédente est vraie :
RewriteRule (.*) http://www.anael.eu/$1 [R=301,L,NE]
Une fois ce fichier sauvegardé, l'affichage de n'importe quelle page du site indique : Erreur 500 / Internal Server Error.
Affichons le journal d'erreurs correspondant au site indiqué :
nano /var/www/www/anael.eu/logs/error.log
[Sun Sep 12 01:52:08 2010] [alert] [client 85.171.166.126] /var/www/anael.eu/www/.htaccess: RewriteEngine not allowed here
Voici les informations que l'on peut tirer de ce message :
On constate que je ne peux pas activer l'URL rewriting dans un fichier .htaccess.
Supprimons donc le fichier .htaccess précédemment créé
rm /var/www/anael.eu/www/.htaccess
Nous allons donc modifier le fichier de configuration Apache du site anael.eu afin de mettre en action le mod rewrite !
nano /etc/apache2/sites-available/anael.eu
Ajouter les lignes précédemment expliquées (avant la fermeture de balise </VirtualHost>) :
RewriteEngine On RewriteCond %{HTTP_HOST} !www\.anael\.eu [NC] RewriteRule /(.*) http://www.anael.eu/$1 [R=301,L,NE]
Apache doit être relancé afin de prendre en compte la modification de configuration
service apache2 restart
Les URL de type http://anael.eu sont maintenant automatiquement converties dans le navigateur en http://www.anael.eu !