FR EN

L’url-rewriting, une pratique à généraliser

Un des problèmes des sites php dynamiques est le référencement dans les moteurs de recherche. Souvent, les URLs de ces applications sont complexes et mal comprises par les différents moteurs de recherche. Une bonne pratique consiste à réécrire ces URLs afin qu’elles soient plus simples à comprendre pour les moteurs de recherche (mais également pour les utilisateurs).

Dans cet article, nous allons aborder les notions de base concernant cette pratique qui devrait être mise en place pour toute application php nécessitant un référencement dans les moteurs de recherches en ligne tels que Google, Bing, etc …

Un autre avantage de cette méthode se situe au niveau de la sécurité. En effet, il est tout à fait possible de cacher les variables ainsi que le langage utilisé car on pourra choisir n’importe quelle extension.

Il est à noter que les différents frameworks du marché comme par exemple symfony2 gèrent les URLs propres automatiquement et qu’il vous sera alors inutile de vous occuper de la gestion des URLs dans ce genre de fichiers de configuration complexes. Un tutoriel symfony2 expliquant la mise en place d’un site simple avec authentification sera bientôt mis en ligne.

Avant de lire ce tutoriel

Pour profiter pleinement de ce tutoriel, il est essentiel de bien maîtriser les expressions régulières et d’avoir des connaissances en bash et php.

Pour un tour d’horizon rapide des expressions régulières, vous pouvez visiter la page Wikipedia : Les expressions régulières

Principe de base

Pour expliquer assez simplement le principe: il s’agit de permettre à notre serveur web (ici Apache) d’interpréter les URLs de type “propres” comme par exemple :

http://www.example.com/1/2/Nom-de-l-article/

Et de transformer l’URL dans un format que votre application php pourra comprendre, comme par exemple :

http://www.example.com/index.php?page=1&article=2

Pré-requis pour la mise en place de l’url rewriting

Avant tout, il faut savoir que l’URL rewriting n’est pas pris en charge par tous les hébergeurs. Ainsi, si votre site est hébergé sur un serveur dont vous ne pouvez changer la configuration, il faudra vous renseigner auprès de celui-ci afin de savoir si vous pouvez la mettre en place.

En revanche, si vous avez votre propre serveur web, il devrait être possible, sans grande difficulté, d’activer l’URL rewriting. Le but de ce tutoriel n‘étant pas de lister tous les types de serveurs web, nous allons ici prendre exemple sur le serveur le plus répandu, à savoir Apache.

Pour activer la réécriture d’URL dans Apache 2, rien de plus simple. Il suffit de rendre disponibles les fichiers du module rewrite dans le dossier mods-enabled. Voici les commandes à taper sur un serveur debian (vous devez avoir les droits root) :

a2enmod rewrite

/etc/init.d/apache2 restart

Une fois le module rewrite activé, il faut vous assurer que le site par défaut est bien configuré pour autoriser la réécriture. Rendez vous dans le fichier /etc/apache2/sites-enabled/000-default et éditez-le afin de définir toutes les variables AllowOverride sur All :


<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride All
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog $/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog $/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>
 

Testons si l’url rewriting fonctionne

  • Créez un dossier nommé test dans votre dossier web
  • Dans ce dossier, créez un fichier page.html contenant le code suivant :

<html><head><title>Test</title></head><body>Vous avez été redirigé vers le fichier page.html</body></html>

  • Créez maintenant un fichier .htaccess contenant le code suivant :

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^test\.html$  /test/article.html [L]

  • Enfin, rendez-vous dans votre navigateur et affichez l’URL suivante :

http://votre_server/dossier_que_vous_avez_créé/test.html

Si le texte “Vous avez été redirigé vers le fichier page.html” s’affiche, l’URL rewriting fonctionne !

Page précedente | Page suivante







Liste des commentaires

Aucun commentaire pour le moment ...

Vous avez la parole