Mod rewrite
Auf dem Apache Server gibt es seit 1997 ein Modul, welches die einfache Umleitung von Seitenanfragen entsprechend Regulärer Ausdrücke auf andere Seiten ermöglicht. Ich täusche so für Suchmaschinen statische Seiten vor, die Anfrage nach einer solchen nicht existenten Seite wird dann anhand meiner RegEx von der RewriteEngine zurückgewandelt.
Der Mode Rewrite Code muss sich natürlich in einer .htaccess-Datei befinden.
Adresszeile wandeln
RewriteEngine on
Das erlaubt mir nun, eine kryptischen Adresse mit Querrystring (z.B. http://www.1000fragen.ch/index.php?load=0666)
als Link (z.B. in einer Navigation oder Sitemap) zu einer normalen Webseite zu verbreiten (http://www.1000fragen.ch/frage-0666.html).
# .htaccess-Datei für den mod rewrite RewriteEngine on Options FollowSymLinks RewriteBase / RewriteRule ^frage-([0-9]+).html$ index.php?load=$1
Documentroot festlegen
Ich möchte auf meinem XAMPP Server den DocumentRoot Ordner ( auf z.B. 'intranet') festlegen:
# .htaccess-Datei für den mod rewrite RewriteEngine on RewriteRule ^/$ /intranet/ [R] # oder RedirectMatch ^/localhost http://intranet/
Umleitung auf Server
Ich möchte alles was auf dem alten Server ankommt auf den neuen Server umleiten:
# all /~user/anypath URLs to http://newserver/~user/anypath. RewriteEngine on RewriteRule ^/~(.+) http://newserver/~$1 [R,L]
Hotlinking abwehren
Hotlinking spahrt Traffic-Volumen auf dem eigenen Server (und damit Kosten), indem passende Bilder direkt vom Server eines Opfers eingebunden werden. Ich kann mich dagegen wehren, indem ich dem Bilderdieb ein anderes Bild (ein Totenkopfbild) unterjuble.
<IfModule mod_rewite.c> RewriteEngine on RewriteCond %[HTTP_REFERER] !^$ RewriteCond %[HTTP_REFERER] !^http://(www.\.)?domain\.com/.*$ [NC] RewriteRule .*\.(gif|jpg)$ http://[Pfad zu Totenkopfbild] [R,NC,L] </IfModule>
Querystring löschen
Um den Querystring (der durch ein Fragezeichen an die Adresse angehängt wird)
zu löschen, muss ich ein Fragezeichen (gefolgt von Nichts) der neuen Adresse anfügen.
[R=302] bedeutet, dass dies ein temporärer Redirect ist, [R=301] bedeutete permanenter redirect
RewriteEngine On RewriteRule ^(.*)$ http://www.biefer.com/? [R=301]