"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

mod_rewrite Frage

DJ_Cyberdance 24.08.2007 - 23:31 802 3
Posts

DJ_Cyberdance

Here to stay
Avatar
Registered: Jun 2002
Location: Vesterålen
Posts: 1838
Hallo!

Folgendes Problem:

domain.com soll eigentlich auf domain.com/foo/bar zeigen. das habe ich folgendermaßen gelöst:

RewriteCond %{HTTP_HOST} http://www.domain.com$ [NC]
RewriteCond %{REQUEST_URI} !domain.com/foo/bar/
RewriteRule ^(.*)$ domain.com/foo/bar/$1 [L]

Das funktioniert auch soweit. Gleichzeitig möcht ich aber, daß domain.com/directory auf domain.com/foo/abc/xyz zeigen soll - und dafür kriege ich kein rewrite-rule hin, weiß jemand wie das geht? Probiert hab ich das hier und unzählige andere Varianten:

RewriteCond %{HTTP_HOST} http://www.domain.com$ [NC]
RewriteCond %{REQUEST_URI} (.*)domain.com/directory/
RewriteRule ^(.*)$ domain.com/foo/abc/xyz//$1 [L]

Funktioniert nur leider nicht. Bin für alle Vorschläge dankbar!

berndy2001


Avatar
Registered: Feb 2003
Location: Vienna
Posts: 2010
hast du keine möglichkeit das in der config deines httpd einzustellen? wäre wesentlich einfacher.

DJ_Cyberdance

Here to stay
Avatar
Registered: Jun 2002
Location: Vesterålen
Posts: 1838
Bedauerlicherweise nein, is ein Webhost auf einem Inode-Server. Und ich finds ziemlich schwach, daß die kein entsprechendes Tool zur Domainverwaltung haben. Aber das ist eine andere Sache.

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25423
Code:
	RewriteCond %{REQUEST_FILENAME} /foo/bar* [NC,OR]
	RewriteCond %{REQUEST_FILENAME} /foo/abc/xyz* [NC]
        RewriteRule .* - [L]

	RewriteCond %{REQUEST_FILENAME} /directory* [NC,OR]
	RewriteRule ^\/directory(.*) /foo/abc/xyz$1 [L]

	RewriteRule ^\/(.*) /foo/bar/$1 [L]
Ein paar kleine Tips:

=> Debug Modus einschalten
Code:
        RewriteLog "/pfad/zu/rewrite.log"
        RewriteLogLevel 5
=> Immer domainnamen-unabhägig schreiben, falls es nicht anders gefordert ist. Sonst ist der Rewrite-code so statisch und lässt keine Aliases zu.

=> Falls ein Redirect auch Google betrifft und sich zB die physische Position der Seite geändert hat, dann sollte ein 301 Redirect stattfinden, weil ansonsten für Google der Inhalt doppelt vorhanden ist und daher schlechter gerated wird. Einfach bei den Redirects statt [L] folgendes schreiben: [R=301,L] (bei "RewriteRule .* - [L]" natürlich nicht, das ist eine Abbruchbedingung!)
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz