Comment créer un fichier htaccess pour réécrire une URL?

Procédure

Qu'est ce que la ré-écriture d'URL?

La réécriture d'URL est un sujet complexe mais très important pour un site internet. L'objectif de la réécriture est multiple:

  • Améliorer le référencement de votre site internet
  • Simplifier la navigation sur votre site
  • Permettre l'évolution de votre site
  • Gérer des redirection
     

Cas pratique de la redirection d'URL par htaccess

Comment créer une redirection simple?

RewriteEngine On
RewriteRule .* testing.php

Ce code va rediriger toutes les requêtes vers la page "testing.php"


Comment rediriger votredomaine.com vers www.votre domaine.com ?

RewriteEngine on
Rewritecond %{HTTP_HOST} ^exemple.com$
Rewriterule ^(.*) http://www.votredomaine.com/$1 [QSA,L,R=301]


Comment rediriger vers un autre dossier sans affiché le dossier de redirection?

Il se peut que vous ayez déplacé votre site internet dans un autre dossier FTP et que vous ne voulez pas que vos visiteurs aient connaissance de ce nouveau dossier. Cela forcera la redirection à être de type www.votredomaine.com alors qu'en réalité, cela devrait être www.votredomaine.com/dossier.

RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} /MonDossier/([^\s?]*) [NC]
RewriteRule ^ %1 [L,NE,R=302]
RewriteRule ^((?!MonDossier/).*)$ MonDossier/$1 [L,NC]


Réécriture des URL

Le module mod_rewrite permet de réécrire des URL.

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !NondeLaPage.php
RewriteRule .* NondeLaPage.php

Contrôler l'accès aux fichiers

Un fichier .htaccess est souvent utilisé afin de restreindre ou refuser l'accès à des fichiers et des dossiers. Pour ce faire, procédez comme suit:

deny from all

Toutefois il vous est possible d'interdire une adresse IP spécifique en utilisant les directives suivantes:

order allow,deny
deny from XXX.XXX.XXX.XXX
allow from all

ou plusieurs IP si vous le désirez:

allow from all
deny from 145.186.14.122
deny from 124.92.14.086

Mettre en place une redirection pour tablette et smartphone

Il vous est possible de rediriger les utilisateurs de tablettes et smartphone vers une page Web spécifique ou un répertoire particulier en utilisant les directives suivantes:

RewriteCond %{HTTP_USER_AGENT} ^.*iPad.*$
RewriteRule ^(.*)$ http://votredomaine.com/dossier [R=301]

RewriteCond %{HTTP_USER_AGENT} ^.*Android.*$
RewriteRule ^(.*)$ http://votredomaine.com/dossier [R=301]

Forcer l'enregistrement d'un document

Si vous souhaitez forcer les utilisateurs à télécharger des fichiers plutôt que de les afficher dans le navigateur, vous pouvez utiliser les directives suivantes:

AddType application/octet-stream .csv
AddType application/octet-stream .xls
AddType application/octet-stream .doc
AddType application/octet-stream .avi
AddType application/octet-stream .mpg
AddType application/octet-stream .mov
AddType application/octet-stream .pdf

Vous pouvez aussi tout mettre sur la même ligne, comme suit:

AddType application/octet-stream .avi .mpg .mov ;pdf .xls .mp4

Désactiver ou activer la navigation dans les répertoires

# Désactiver la navigation dans les répertoires
Options All -Indexes
# Activer la navigation dans les répertoires
Options All +Indexes

Changer les en-têtes Charset et le language.

Vous pouvez changer le Charset et la langue grâce aux directives suivantes:

AddDefaultCharset UTF-8
DefaultLanguage en-GB

Mettre en cache avec le mod_expires

Le module mod_expires d'Apache vous permet de définir des intervalles d'expiration pour différents types de contenu sur votre site Web. Par exemple, vous pouvez utiliser les directives mod_expires pour indiquer aux navigateurs de mettre en cache les fichiers image pendant une heure, les fichiers Javascrpt pendant deux semaines et les fichiers CSS pendant deux mois.

<IfModule mod_expires.c>
     ExpiresActive On
     ExpiresByType image/png "access 1 hour"
     ExpiresByType image/gif "access 1 hour"
     ExpiresByType image/jpeg "access 1 hour"
     ExpiresByType text/javascript "access 2 weeks"
     ExpiresByType text/css "access 2 months"
     ExpiresByType text/html "modification 4 hours"
     ExpiresDefault "access 2 days"
</IfModule>

Rate this article :

2.5/5 | 13 opinion

This article was useful to you ?

Article utileYes

Article non utileNo

Vous souhaitez nous laisser un commentaire concernant cet article ?

Si cela concerne une erreur dans la documentation ou un manque d'informations, n'hésitez pas à nous en faire part depuis le formulaire.

Pour toute question non liée à cette documentation ou problème technique sur l'un de vos services, contactez le support commercial ou le support technique

MerciMerci ! N'hésitez pas à poser des questions sur nos documentations si vous souhaitez plus d'informations et nous aider à les améliorer.


Vous avez noté 0 étoile(s)

Similar articles

5mn reading

Comment créer et utiliser un fichier .htaccess avec le LWS Panel ?

0mn reading

Comment configurer un SMTP sur un CMS

0mn reading

Votre formulaire de contact ne fonctionne pas et aucun email n'est reçu ?

0mn reading

Comment effectuer une mise à jour de Wordpress vers la dernière version ?


Ask the LWS team and its community a question