Réaliser un fichier .htaccess professionnel pour Contao

par David Imboden | Commentaires : 0

Introduction

Lors d'une nouvelle installation de Contao votre site ne réagit pas comme devrait le faire un site professionnel.

Il y a plusieurs problématiques dont il faut tenir compte :

  • Votre site doit afficher le nom des pages avec des URL propres, c'est à dire avec des noms de fichiers (éventuellement .html) et sans le index.php au centre.
  • Votre site doit rediriger vers une page d'erreur 404, si l'url n'existe pas.
  • L'adresse domaine.com doit afficher le même site que www.domaine.com et ne surtout pas faire une erreur. Le mieux est de rediriger domaine.com vers www.domaine.com, c'est aussi apprécié par le référencement Google.


Voici ci-dessous, comment réaliser ces éléments en détail.

Activer les «pretty URL»

Aller dans configuration et activer «Ré-écrire les URLs».

Contao Typolight Pretty URL Ré écriture

Modifier le .htaccess (à la racine des fichiers de votre site Contao) en ajoutant :

    DirectoryIndex index.php
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule .\.html$ index.php [L]

Voilà c'est réglé.

Créer une page d'erreur 404

Ajouter une nouvelle page dans la rubrique «Article» de type «redirection 404». Choisir un nom. Cette page vera se rediriger toutes les pages qui n'existent pas, mais particularité de Contao cela ne fonctionne uniquement avec l'extention choisie pour votre site. Par exemple si vous avez une page : «information.html», la redirection vers la page 404 fonctionnera si l'utilisateur se trompe et entre «informmations.html», par conta ça ne redirigera pas vers une page 404 en entrant «info» ni «information.htm»

Pour forcer la page 404 à TOUTES les mauvaises pages, customiser un .htaccess en ajoutant à la fin :

   ErrorDocument 404 /page-not-found.html

(page-not-found.html est à remplacer par le nom que vous souhaitez pour votre page 404.)

Forcer le «www» devant le nom de domaine

Il y a certains sites qui redirigent vers une erreur si on entre domaine.com à la place de www.domaine.com, c'est le meilleur moyen de perdre des visites. Rappelons que «www» n'est pas obligatoire pour mentionner un site, il s'agit d'une convention. Il est donc fortement recommandé de l'utiliser car la majorité des utilisateurs ajouteront «www» implicitement, cela aide aussi au référencement par Google qui n'aime pas que plusieurs adresses pointent sur le même contenu.

Pour cela ajouter à votre «.htaccess» les lignes ci-dessous (mon-domaine est à remplacer par votre nom de domaine):

    RewriteEngine On
    RewriteCond %{HTTP_HOST} mon-domaine\.com [NC]
    RewriteCond %{HTTP_HOST} !^www\.mon-domaine\.com [NC]
    RewriteRule ^(.*) http://www.mon-domaine\.com/$1 [L,R=301]

Tout en un

Pour activer la réécriture d’url + le fait de transformer nom.com en www.nom.com + la page de redirection 404 ,utiliser ce contenu pour votre fichier .htaccess :

    DirectoryIndex index.php
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule .\.html$ index.php [L]
    RewriteCond %{HTTP_HOST} mon-domaine\.com [NC]
    RewriteCond %{HTTP_HOST} !^www\.mon-domaine\.com [NC]
    RewriteRule ^(.*) http://www.mon-domaine\.com/$1 [L,R=301]
    ErrorDocument 404 /page-not-found.html

(mon-domaine est à remplacer par votre nom de domaine. page-not-found.html est à remplacer par le nom que vous souhaitez pour votre page 404.)

Revenir

Ajouter un commentaire