03.09.2010, 09:44 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

center-pc.de

admin

well known as c!lla

Beiträge: 673

Sprachen: JS, PHP, HTML/CSS, VC# (lernen)

Wohnort: 127.0.0.1

Beruf: IT-Systemelektroniker

Themenstarter Themenstarter

1

11.03.2008, 18:19

mod rewrite - RewriteEngine - htaccess

Mit der Rewrite Engine ist es ihnen möglich Dateien unter einer Adresse zugänglich zu machen, unter der sie garnicht gespeichert sind.
Auf deutsch: Sie geben in die Adresszeile ihres Browsers eine URL ein, zu einer Datei, die auf dem Webserver garnicht vorhanden ist. Doch ist diese Adresse in der .htaccess definiert, wird der User zu dem reellen Dokument weitergeleitet.
Das geschieht ohne, dass der User etwas davon mitbekommt.

Also Beispielwiese wird aus:
http://web-horst.de/seiten.php?link-id=home -> http://web-horst.de/home oder http://web-horst.de/home.html
So wird es dann auch in der Adresszeile angezeigt.

Hier der dazu benötigte Quellcode, dieser muss in der .htaccess stehen, die sich im Hauptverzeichnis der Domain befinden/erstellt werden sollte(in den folgenden Beispielen hängen wir immer ein .html an...):

Quellcode

1
2
RewriteEngine on
RewriteRule ^home.html$ /seiten.php?link-id=home


So wie ich es euch jetzt gezeigt habe, müsstet ihr das für jede Seite machen:

Quellcode

1
2
3
4
5
RewriteEngine on
RewriteRule ^home.html$ /seiten.php?link-id=home
RewriteRule ^impressum.html$ /seiten.php?link-id=impressum
RewriteRule ^image.html$ /seiten.php?link-id=image
...


Ihr könnt euch schon denken, dass das nicht alles sein kann, wäre es doch sehr umständlich. Es gibt einen kleinen Trick, mit dem wir das ganze automatisieren können, dafür machen wir und die Regulären Ausdrücke (regexp) zunutze:

Quellcode

1
2
RewriteEngine on
RewriteRule ^([a-z\-_0-9])\.html$ /seiten.php?link-id=$1

Hiermit wird eine Seite, die aus den Buchstaben von a-z, dem Bindestrich oder dem Unterstrich sowie aus Zahlen bestehen kann umgeschrieben/weitergeleitet.

Nun muss man nurnoch die Verlinkung auf seiner Seite nach diesem Modell anpassen.

Hinweise:
Da man auch mit virtuellen Verzeichnissen arbeiten kann, sollten alle Pfadangeben absolut sein, also vom Hauptverzeichnis ausgehend.
Anstatt:

HTML

1
<img src="bilder/bild.jpg" />

solltet ihr lieber folgendes verwenden:

HTML

1
<img src="/bilder/bild.jpg" />

Der Unterschied ist, dass im 2.Beispiel vor dem Verzeichnis ein / gesetzt wurde, der sorgt dafür, dass das Bild vom Hauptverzeichnis ausgehend aufgerufen wird.

Desweiteren sollte man darauf achten, dass die verwendeten virtuellen Namen nicht in Wirklichkeit vorkommen. Sprich wenn auf eurem Webserver die Datei test.html liegt, gibt es Probleme wenn diese Adresse durch ModRewrite umgeschreiben wird. Falls das bei euch der Fall sein sollte, könnt ihr euch aus dem Dilemma ziehen, indem ihr in die virtuelle Adresse zusätzlich ein Verzeichnis einbaut, beispielweise so: /seite/start.html

Hier habe ich mal einige Grüde für solche URL aufgelistet: [SEO - onpage] Suchmaschinenfreundliche URL

Wenn ihr Fragen oder Probleme habt, einfach hier schreiben.
Mein erstes Blog: HTPC Blog | Mediacenter PCs 1+1=10
  • Zum Seitenanfang

Schülerpraktikum
Blinkster - Das Coumputerforum - dolph-in-forum.de - mynotiz.de - online Notizen - Coole Onlinespiele



Impressum