mod_rewrite (das “Schweizer Messer” für URLs) ist ein Modul für Webserver, welches zur Manipulation von URLs verwendet wird. mod_rewrite enthält Direktiven und Regeln und kann sowohl in der zentralen Konfigurationsdatei des Webservers als auch in einer .htaccess Datei aktiviert und eingesetzt werden.
Die Regelsteuerung von mod_rewrite basiert auf regulären Ausdrücken, wie sie unter Linux/Unix vorzufinden sind (Englisch: Regular Expressions; Deutsch: Reguläre Ausdrücke) .
Durch folgenden Codeschnipsel wird die komplette Subdomain umgeleitet auf die Hauptdomain mit dem Query-String der Subdomain. Dieser Code ist unter www.1-search.de - die Neue Suche im Web live in Aktion.
RewriteCond %{HTTP_HOST} ^(.*[^.]+)\.1-search\.de$ [NC]
RewriteRule ^$ http://1-search.de/%1 [L]
<IfModule mod_rewrite.c>
RewriteEngine on
# Tag/Nacht
RewriteCond %{TIME_HOUR}%{TIME_MIN} >0600
RewriteCond %{TIME_HOUR}%{TIME_MIN} <1800
RewriteRule ^$ /index.tag.html [L]
RewriteRule ^$ /index.nacht.html [L]
</IfModule>
Abhängig von der Tageszeit wird für “/” entweder index.tag.html (von 6.00 bis 18.00 Uhr) aufgerufen, oder aber index.nacht.html für die übrige Zeit.
<IfModule mod_rewrite.c>
RewriteEngine on
# Content-Type (von Christoph Schneegans)
RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml
RewriteCond %{HTTP_ACCEPT} !application/xhtml\+xml\s*;\s*q=0
RewriteCond %{THE_REQUEST} HTTP/1\.1
RewriteRule \.html$ - "[T=application/xhtml+xml; charset=utf-8]"
</IfModule>
Hiermit wird abhängig vom jeweiligen Accept Header bestimmt, ob (mit einigen Bedingungen per RewriteCond) der Content-Type ‘application/xhtml+xml; charset=utf-8’ geliefert werden soll. Ansonsten wird das jeweilige Dokument als ‘text/html; charset=utf-8’ ausgeliefert, sofern man die Konfiguration für text/html übernommen hat.
In Adaption zu
http://www.w3.org/...,tool
hier mit mod_rewrite gelöst.
# tools
RewriteRule ^(.*),validate http://validator.w3.org/check?uri=http://%{HTTP_HOST}/$1 [L,R]
RewriteRule ^(.*),checklink http://validator.w3.org/checklink?uri=http://%{HTTP_HOST}/$1 [L,R]
RewriteRule ^(.*),rchecklink http://validator.w3.org/checklink?recursive=on&uri=http://%{HTTP_HOST}/$1 [L,R]
RewriteRule ^(.*),text http://cgi.w3.org/cgi-bin/html2txt?url=http://%{HTTP_HOST}/$1 [L,R]
RewriteRule ^(.*),cssvalidate http://jigsaw.w3.org/css-validator/validator?usermedium=all&uri=http://%{HTTP_HOST}/$1 [L,R]
RewriteRule ^(.*),links http://www.google.com/search?as_lq=http://%{HTTP_HOST}/$1 [L,R]
RewriteRule ^(.*),blinks http://blogsearch.google.com/blogsearch?scoring=d&q=link:http://%{HTTP_HOST}/$1 [L,R]
RewriteRule ^(.*),cacheability http://www.ircache.net/cgi-bin/cacheability.py?descend=on&query=http://%{HTTP_HOST}/$1 [L,R]