Bei einer Rewrite-Engine (rewrite = umschreiben, engine = Maschine) handelt es sich um eine Komponente der Webserver-Software, die es ermöglicht, Uniform Resource Locators (URLs) umzuschreiben oder weiterzuleiten. Die bekannteste Rewrite-Engine ist mod_rewrite des Apache HTTP Servers. Aber auch alternative Webserver wie nginx oder lighttpd stellen entsprechende Funktionen bereit.
Die Software-Komponente kommt z. B. dann zum Einsatz, wenn unhandliche dynamische URLs, wie sie mitunter von Content-Management-Systemen erzeugt werden, in nutzerfreundliche URLs umgeschrieben werden sollen. Die Gründe dafür liegen auf der Hand: Technisch bedingte URLs wie
"http://beispiel.com/a/index.php?title=seitentitel"
lassen sich von menschlichen Nutzern nur schwer erfassen; eine Rewrite-Engine erlaubt es, dieselbe Ressource parallel über eine deutlich eingängigere URL verfügbar zu machen:
"http://beispiel.com/artikel/seitentitel"
Ein Internetnutzer kann somit auch diese URL verwenden, um die entsprechende Webseite aufzurufen. Kommt eine solche Anfrage beim Webserver an, schreibt die Rewrite-Engine die URL automatisch in das intern vom Server verwendete Schema "http://beispiel.com/a/index.php?title=seitentitel" um.
Somit erzeugt die Rewrite-Engine eine Art Abstraktionsschicht zwischen den URLs, die das Webprojekt intern verwendet, und den URLs, die im Netz öffentlich dargestellt werden. Dies ermöglicht es, unabhängig von internen technischen Anforderungen nach außen hin ein nutzerfreundliches einheitliches Adressschema zur Verfügung stellen.
Intern kann so weiterhin die dynamische, parametrisierte Adresse genutzt werden, während Nutzer aus dem Internet über eine scheinbar statische Adresse auf das Webprojekt zugreifen. Dies hat den Vorteil, dass die nach außen präsentierten URLs auch dann gültig bleiben, wenn intern Änderungen an der Dateihierarchie vorgenommen werden.
Darüber hinaus können Webseitenbetreiber mit der Rewrite-Engine Adressumleitungen realisieren, die sich an bestimmte Bedingungen knüpfen lassen. So ist es beispielsweise möglich, Umleitungen basierend auf User-Agent-Kennung oder IP-Adresse des anfragenden Clients einzurichten, um ein Geotargeting umzusetzen oder für verschiedene Devices gezielt optimierte Websites auszuspielen. In der Regel kommt dabei ein 301-Redirect zum Einsatz, der sicherstellt, dass trotz des Parallelbetriebs zusätzlicher mobiler Webseiten oder verschiedener Sprachversionen immer nur eine Website-Version im Index der Suchmaschine gespeichert wird.
Abstand nehmen sollten Webseitenbetreiber hingegen von Cloaking-Praktiken, bei denen speziell optimierte Seiten ausschließlich an Suchmaschinen-Crawler ausgespielt werden, um das Ranking zu verbessern.