Innerhalb von Weiterleitungsregeln und Konditionen besteht Zugriff auf zahlreiche Header- und Server-Variablen der Form %{HTTP_HOST}, %{REQUEST_URI} etc. Diese lassen sich durch Operatoren verknüpfen und mit Funktionen verarbeiten. Somit lässt sich so gut wie jeder gewünschte Redirect realisieren, auch wenn die Syntax nicht gerade intuitiv ist.
Schauen wir uns ein Beispiel für einen 301 Redirect mittels mod_rewrite an. Wir möchten für unsere Website Canonical URLs zur Vermeidung von Duplicate Content erzwingen. Das bedeutet, dass alle URLs mit HTTPS und WWW beginnen sollen, unabhängig davon, wie Besucher und Besucherinnen die Inhalte abrufen.
Wir definieren zwei Weiterleitungskonditionen, die wir durch das OR-Flag miteinander verknüpfen. Die erste Kondition testet, ob HTTPS ausgeschaltet ist, die zweite Kondition überprüft, ob der Domain das führende WWW fehlt. Über das NC-Flag schalten wir die Unterscheidung zwischen Groß- und Kleinschreibung ab. Ist eine der beiden Konditionen wahr, leiten wir per 301 Redirect auf die HTTPS-WWW Version der URL um. Dabei nutzen wir den regulären Ausdruck (.*), der jegliche URL aufgreift, und fügen diese mittels $1 hinter der Domain ein: