Un moteur de réécriture, de l’anglais Rewrite Engine (rewrite = réécrire, engine = moteur), est un composant de logiciel Web qui permet de réécrire des URLs (Uniform Resource Locators) ou de les transférer. Le moteur le plus connu est mod_rewrite du serveur HTTP Apache. D’autres serveurs Web existent tels que nginx ou lighttpd dont les fonctions sont similaires.
Ces composants de logiciel interviennent par exemple lorsque que des URLs dynamiques peu fiables, comme ceux parfois utilisés par les systèmes de gestion de contenus, doivent être réécrits pour être davantage adaptés à la navigation. Les raisons sont évidentes. Il est complexe pour un internaute de retenir une URL tel que "http://exemple.com/a/index.php?title=titredepage". Le moteur de réécriture permet donc de créer une adresse plus simple tout en conservant sa source. Par exemple : "http://exemple.com/article/titredepage".
Un internaute peut ainsi utiliser cette URL pour charger le site Internet en question. Dès que la requête est entrée, le module Rewrite Engine modifie automatiquement l’URL dans le schéma utilisé en interne par le serveur "http://exemple.com/a/index.php?title=titredepage".
C’est ainsi que le module Rewrite Engine crée une sorte de couche d’abstraction entre les URLs qui utilisent le projet Web en interne et les URLS qui sont visibles sur le Web. Il permet d’offrir un système d’adressage convivial et uniforme tout en tenant compte des exigences techniques internes.
En interne, il est possible de continuer à utiliser l‘adresse dynamique paramétrée, les internautes ont quant à eux accès à une adresse statique. L’avantage est que ces URLs demeurent actives même si des changements internes sont mis en place dans la hiérarchie des fichiers.
En outre, ces moteurs de réécriture permettent aux administrateurs de sites Internet de mettre en place sous certaines conditions des transferts d’adresses. Il est, par exemple, possible de créer des redirections en se basant sur l’identité d’un agent utilisateur ou sur l’adresse IP du client concerné, le but est alors de mettre en œuvre un ciblage géographique ou d’optimiser un site Internet pour le rendre accessible sur tous les supports. En règle générale, une redirection 301 apparaît alors, ce qui garantit qu’une version du site soit toujours sauvegardée dans l’index du moteur de recherche, et ce indépendamment des autres pendants dédiés aux appareils mobiles ou écrits dans d’autres langues.
Il est primordial de garder ses distances face aux pratiques de cloaking dont le but est d’améliorer le positionnement d’un site en créant deux versions de pages, une destinée aux robots des moteurs de recherche et l’autre destinée à l’utilisateur final.