Sie sind hier:   » ZMS home » Dokumentation » Details » How-To » Betrieb » Apache rewrite

rewrite rules für die Verwaltung multipler Domains

Autor: Dr. Volker Liebenberg, 04.09.2003

Sollen mehrere Domains innerhalb einer ZOPE/ZMS-Instanz verwaltet werden, müssen virtuelle Hosts eingerichtet und entsprechende rewrite-Regeln konfiguriert werden.

Prinzipiell ist das innerhalb von ZOPE möglich, aufgrund von Leistungsfähigkeit und Flexibilität bietet es sich jedoch an, diese Konfiguration direkt im Apache vorzunehmen.

Das folgende Beispiel beschreibt ein Portal (www.portal.de) das die Inhalte verschiedener Mandanten (instanz1.de instanz2.de usw.) übersichtsartig dargestellt werden und für weiterführende Informationen auf diese verweist.
Der Zugriff auf die Instanzen-Hierarchie erfolgt über jeweils eine eigene Domain. Die Konfiguration der virtuellen Hosts mit rewrite-Regeln erfolgt direkt in der httpd.conf:

portal.de

RewriteEngine On
RewriteRule ^PfadINSTANZ1(.*) http://www.instanz1.de:80$1/ [L,NE]
RewriteRule ^PfadINSTANZ2(.*) http://www.instanz2.de:80$1/ [L,NE]
RewriteRule ^PfadINSTANZ3(.*) http://www.instanz3.de:80$1/ [L,NE]
RewriteRule ^(.*) http://217.160.211.236:8080/VirtualHost\
Base/http/www.portal.de:80/live/ROC/VirtualHostRoot$1 [L,P,NE]

RewriteRule ^PfadINSTANZX(.*) ...
Anfragen mit dem entsprechenden URL-Pfad der Instanz werden auf die zugehörige Domain weitergeleitet. L (last rule) stoppt die Bearbeitung weiterer reWrites. NE verhindert, dass Sonderzeichen anders codiert werden, z.B. bei Suchanfragen (wildcards).

RewriteRule ^(.*) http://217.160.211.236:8080/VirtualHostBase/ http/www.portal.de:80/live/ROC/VirtualHostRoot$1 [L,P,NE]
Alle anderen Objekte (^(.*) (=Ab Zeilenanfang beliebigeZeichen in unbegrenzter Zahl) werden an das Zope-Virtual Host Monster (VHM) übergeben. Das VHM ändert die Links innerhalb der HTML-Seiten geändert. Der Parameter erzwingt einen internen Proxyrequest und maskiert damit die lange, an das VHM übergebene URL.

instanzX.de

Die zu verwendenden reWrite Rules entsprechen denen des Portals. Dies ist erforderlich, um z.B. bei internen Links eine korrekte Adressierung zu erreichen.

Beim rewriting ist darauf zu achten, dass der gesamte ZOPE-Pfad unverändert übernommen wird, um fehlerhafte Adressierung von Objekten zu vermeiden.
Eine Verwendung kürzerer Pfade ist möglich, erfordert aber komplexere reWrite-Regeln.

Die verwendeten Flags bedeuten:
L: Ende der Regelbearbeitung (bei Treffer)
NE: Keine Codierung von Sonderzeichen
P: erzwinge internen Proxyrequest und maskiere damit die reWrite URL

Mehr zum Thema:

Kurze Dokumentation zur Bedeutung der rewrite Parameter
DZUG: Apache und Zope
Wie hänge ich meinen Zope hinter einen Apache mittels virtual Hosts?
VHM and Apache
Installing and configuring Zope 2.7 with VHM, apache 2 and rewrite rules (Date 2004/05/18). See also: http://www.zope.org/Members/regebro/Zope_and_Apache Virtual Host Monster, ProxyPass, RewriteRules und Logs (Date 2003/08/05)
Apache und SSL Login
siehe auch http://www.zope.org/Members/unfo/apache_zserver_ssl