URL Rewriting

Das sogenannte URL Rewriting bereitet auch erfahrenen Programmierern immer wieder Kopfzerbrechen. Nicht nur, dass man die richtigen HTTP-Status-Kodes im Kopf haben und reguläre Ausdrücke beherrschen sollte, sondern das Umschreiben von URLs kann sogar auf .htaccess-Ebene für einzelne Verzeichnisse und für viele Zwecke gleichzeitig erfolgen.

Auf dieser Seite möchte ich praktische Konfigurationen zum kopieren sammeln. Bei Vorschlägen: schreiben Sie doch einfach

www vor dem Domänennamen

Oft läuft der Webserver sowohl direkt unter der Domäne als auch auf der Subdomäne "www". Um die eingehenden Links konsistent zu halten empfiehlt es sich das www zu "erzwingen". Hier hilft die folgenden Konfiguration:

# Enable URL rewriting
RewriteEngine On

# Redirect adding leading www to root domain if not subdomain specified
RewriteCond %{HTTP_HOST} ^marianne-kuntze-wagner\.de
RewriteRule ^(.*)$ http://www.marianne-kuntze-wagner.de/$1 [R=301,L]

 Dokumentation zu mod_rewrite

 Apache Rewrite Guide auf Apache.org

 

Variablennamen für mod_rewrite

HTTP_ACCEPT

Vom Client akzeptierte Medientypen(MIME). Z.B. "text/plain" oder "image/gif"

HTTP_COOKIE

Cookies, die der Client mitschickt.

HTTP_HOST

Domainname des angefragten (virtuellen) Hosts.

HTTP_REFERER

Ist gesetzt, wenn die Anfrage über einen direkten Link kam(zuvor besuchte URL des Clients).

HTTP_USER_AGENT

Client. Z.B. "User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.0.9) Gecko/20061206 Firefox/1.5.0.9"

QUERY_STRING

Bei GET-Formularen übergebener Anfragestring.

REMOTE_ADDR

IP-Adresse, die der Client mitschickt (eigene, des Proxies, ...)

REMOTE_HOST

Domainname des Clients, sofern bekannt.

REMOTE_USER

Benutzername des Clients, gegebenenfalls nach erfolgreicher Anmeldung.

REQUEST_URI

Die angeforderte URI.

REQUEST_FILENAME

Dateiname inklusive komplettem (lokalem) Pfad.

SERVER_ADDR

IP-Adresse des Servers.

TIME_DAY

Aktueller Tag.

TIME_MON

Aktueller Monat.

TIME_YEAR

Aktuelles Jahr.

TIME_HOUR

Aktuelle Stunde.

TIME_MIN

Aktuelle Minute.

TIME_SEC

Aktuelle Sekunde.

ENV:PATH

Der Pfad auf dem Server. Hierrüber lassen sich beliebige Umgebungsvariablen abfragen.

HTTP:Connection

HTTP-Header