Apache mod rewrite aktivieren und nutzen: Unterschied zwischen den Versionen

Aus all-connect Hilfe-Center
Zur Navigation springen Zur Suche springen
 
(22 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{ KB }}
__NOTOC__
Das Apache-Modul ''mod_rewrite'' ermöglicht es, Internetadressen (URLs) intern "umzuschreiben" (rewrite). Ihr Besucher greift so auf eine nicht real existierende URL zu, die der Webserver anhand Ihrer Regeln auf den echten Pfad umleitet, ohne dass es der Besucher merkt.


===Ein Praxis-Beispiel===
Das Apache-Modul ''mod_rewrite'' ermöglicht es, Internetadressen (URLs) intern "umzuschreiben" (rewrite). Ihr Besucher greift so auf eine nicht real existierende URL zu, die der Webserver anhand Ihrer Regeln auf den echten Pfad umleitet, ohne dass es der Besucher merkt. Diese Technik ist auch für die Suchmaschinen-Optimierung geeignet.
 
====Allgemeiner Hinweis zur Konfiguration====
Natürlich lassen sich in den folgenden Beispielen analog auch beliebig andere Datei- oder Verzeichnisnamen verwenden. Das Umschreiben der URLs geschieht für den Benutzer automatisch und transparent (also auch für Suchmaschinen neutral). Gehen Sie dazu jeweils wie folgt vor:
# Erstellen Sie mit einem Text-Editor die u.g. Server-Konfiguration mit dem Dateinamen ''.htaccess''
# Speichern Sie die Text-Datei im Hauptverzeichnis Ihres Webservers (''/htdocs'').
 
====Beispiel 1: Alias-Domain auf Unterordner verweisen====
Mit folgenden ''RewriteRules'' können Sie unterschiedliche "Startseiten" für unterschiedliche Domains anzeigen lassen. Beispiel:
*http://www.beispieldomain.eu --> Normaler Aufruf der index.html (im Ordner ''"htdocs/"'')
*http://www.alias-domain.at --> Umgeleiteter Aufruf von http://www.beispieldomain.eu/alias/index.html (also im Ordner ''"htdocs/alias/"'')
 
Voraussetzung hierfür ist, dass Ihre zusätzlichen Domains als ''Alias-Domain'' (oder ''Co-Domain'') parallel auf Ihren web-connect Webserver mittels ''ServerAlias'' konfiguriert sind. Dies übernehmen wir gerne für Sie.
 
;Server-Konfiguration (Inhalt für die ''.htaccess''-Datei)
RewriteEngine On
RewriteCond %{HTTP_HOST} alias-domain\.at$ [NC]
RewriteCond %{REQUEST_URI} !/alias [NC]
RewriteRule ^(.*)$ /alias/$1 [PT,L]
 
;Wichtiger Hinweis:
Die o.g. ''RewriteRule'' verändert die URL <nowiki>http://www.alias-domain.at/index.html</nowiki> so, als wäre das DocumentRoot direkt im Ordner ''"htdocs/alias/"''. Die Datei "<tt>index.html</tt>" (und ggf. alle verlinkten Bilder) müssen also im Ordner ''"htdocs/alias/"'' abgelegt werden.
 
====Beispiel 2: Pfad-Vereinfachung====
Sie benutzen einen Seiten-Genarator, der eine Liste von Links (z.B. Produkte) aus einer Kategorie auflistet. Hierfür lautet Ihre Adresse z.B. ''www.BeispielDomain.eu/show-products.php?action=list&category=Unterhaltung''
Sie benutzen einen Seiten-Genarator, der eine Liste von Links (z.B. Produkte) aus einer Kategorie auflistet. Hierfür lautet Ihre Adresse z.B. ''www.BeispielDomain.eu/show-products.php?action=list&category=Unterhaltung''


Zeile 11: Zeile 33:
Schöner wäre hier z.B. die URL ''www.BeispielDomain.eu/Produkte/Unterhaltung'' um die genannten Nachteile zu beheben.
Schöner wäre hier z.B. die URL ''www.BeispielDomain.eu/Produkte/Unterhaltung'' um die genannten Nachteile zu beheben.


===Konfiguration===
;Server-Konfiguration (Inhalt für die ''.htaccess''-Datei)
Natürlich lassen sich im folgenden Beispiel analog auch beliebig andere Verzeichnisnamen verwenden. Das Umschreiben der URLs geschieht für den Benutzer automatisch und transparent.
# Erstellen Sie mit einem Text-Editor die u.g. Server-Konfiguration mit dem Dateinamen ''.htaccess''
# Speichern Sie die Text-Datei im Hauptverzeichnis Ihres Webservers (''/htdocs'').
 
=====Server-Konfiguration (Inhalt für die ''.htaccess''-Datei)=====
  RewriteEngine On
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-f
Zeile 24: Zeile 41:
===Weiterführende Dokumentation===
===Weiterführende Dokumentation===
*[[Wikipedia:Mod_rewrite]]
*[[Wikipedia:Mod_rewrite]]
*http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html (Englisch)
*http://httpd.apache.org/docs/current/mod/mod_rewrite.html (Englisch)


[[Category:erweiterte Einstellungen]]
[[Category:Einstellungen Webserver]]

Aktuelle Version vom 17. Dezember 2015, 13:45 Uhr


Das Apache-Modul mod_rewrite ermöglicht es, Internetadressen (URLs) intern "umzuschreiben" (rewrite). Ihr Besucher greift so auf eine nicht real existierende URL zu, die der Webserver anhand Ihrer Regeln auf den echten Pfad umleitet, ohne dass es der Besucher merkt. Diese Technik ist auch für die Suchmaschinen-Optimierung geeignet.

Allgemeiner Hinweis zur Konfiguration

Natürlich lassen sich in den folgenden Beispielen analog auch beliebig andere Datei- oder Verzeichnisnamen verwenden. Das Umschreiben der URLs geschieht für den Benutzer automatisch und transparent (also auch für Suchmaschinen neutral). Gehen Sie dazu jeweils wie folgt vor:

  1. Erstellen Sie mit einem Text-Editor die u.g. Server-Konfiguration mit dem Dateinamen .htaccess
  2. Speichern Sie die Text-Datei im Hauptverzeichnis Ihres Webservers (/htdocs).

Beispiel 1: Alias-Domain auf Unterordner verweisen

Mit folgenden RewriteRules können Sie unterschiedliche "Startseiten" für unterschiedliche Domains anzeigen lassen. Beispiel:

Voraussetzung hierfür ist, dass Ihre zusätzlichen Domains als Alias-Domain (oder Co-Domain) parallel auf Ihren web-connect Webserver mittels ServerAlias konfiguriert sind. Dies übernehmen wir gerne für Sie.

Server-Konfiguration (Inhalt für die .htaccess-Datei)
RewriteEngine On
RewriteCond %{HTTP_HOST} alias-domain\.at$ [NC]
RewriteCond %{REQUEST_URI} !/alias [NC]
RewriteRule ^(.*)$ /alias/$1 [PT,L]
Wichtiger Hinweis

Die o.g. RewriteRule verändert die URL http://www.alias-domain.at/index.html so, als wäre das DocumentRoot direkt im Ordner "htdocs/alias/". Die Datei "index.html" (und ggf. alle verlinkten Bilder) müssen also im Ordner "htdocs/alias/" abgelegt werden.

Beispiel 2: Pfad-Vereinfachung

Sie benutzen einen Seiten-Genarator, der eine Liste von Links (z.B. Produkte) aus einer Kategorie auflistet. Hierfür lautet Ihre Adresse z.B. www.BeispielDomain.eu/show-products.php?action=list&category=Unterhaltung

  • Die URL ist schlecht im Gedächtnis zu behalten
  • Manche Suchmaschinen indizieren solche URLs falsch
  • Angreifer erkennen den direkten Zugriff auf Ihr PHP-Script

Schöner wäre hier z.B. die URL www.BeispielDomain.eu/Produkte/Unterhaltung um die genannten Nachteile zu beheben.

Server-Konfiguration (Inhalt für die .htaccess-Datei)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^Produkte/(.*)$ /show-products.php?action=list&category=$1 [PT,L,QSA]

Weiterführende Dokumentation