ich plage mich mit mod_rewrite und dem Apache 1.3.29 rum. Über die
.htaccess möchte ich folgendes erreichen: Alles was nicht *.domain1.com
ist soll nach domain1.com/fehler.htm umgeleitet werden. Aber auch so, das
der Browser die domain1.com Adresse anzeigt.
in meiner .htaccess steht:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^\.domain1\.com$ [NC]
RewriteRule ^/(.*) http://domain1.com/fehler.htm?domain=$1 [L,R]
Auch habe ich
RewriteCond %{REQUEST_URI} !^\.domain1\.com$ [NC] ... ausprobiert.
Beides funktioniert nicht.
Die .htaccess wird ausgewertet, das habe ich mittels eines Syntaxfehler
probiert.
Was mache ich noch falsch?
Lt. google.de und meine Apache-Bibel sollte es so funktionieren.
Danke für Eure Hilfe.
Viele Grüße aus Köln
Ralf Schmidt
Ralf Schmidt wrote on Sun, 18 Jul 2004 18:40:45 +0200:
> Hallo,
>
> ich plage mich mit mod_rewrite und dem Apache 1.3.29 rum. Über die
> .htaccess möchte ich folgendes erreichen: Alles was nicht *.domain1.com
> ist soll nach domain1.com/fehler.htm umgeleitet werden. Aber auch so, das
> der Browser die domain1.com Adresse anzeigt.
>
> in meiner .htaccess steht:
> RewriteEngine on
> RewriteCond %{HTTP_HOST} !^\.domain1\.com$ [NC]
> RewriteRule ^/(.*) http://domain1.com/fehler.htm?domain=$1 [L,R]
>
> Auch habe ich
> RewriteCond %{REQUEST_URI} !^\.domain1\.com$ [NC] ... ausprobiert.
> Beides funktioniert nicht.
>
> Die .htaccess wird ausgewertet, das habe ich mittels eines Syntaxfehler
> probiert.
>
>
>
> Was mache ich noch falsch?
Nichts :) . Nur im Host-Header auf den Du mit Deiner Vorbedingung prüfst
steht vermutlich nicht '.domain1.com'.
Lass einfach den ^-Anker für den Match auf den Anfang einer Zeichenkette
weg.
gruss,
.max
> in meiner .htaccess steht:
> RewriteEngine on
> RewriteCond %{HTTP_HOST} !^\.domain1\.com$ [NC]
So ein Host kann eigentlich nicht kommen. Du meinst sicherlich:
RewriteCond %{HTTP_HOST} !domain1\.com$ [NC]
Davon abgesehen würde ich eher positiv testen - also wenn falsche
Domain, dann umleiten:
RewriteCond %{HTTP_HOST} domain2\.com$ [OR]
RewriteCond %{HTTP_HOST} domain3\.com$
...
Sollte ein kaputter HTTP/1.0 Client keinen Host mitsenden, könnte der
sich evtl. tot rennen.
> RewriteRule ^/(.*) http://domain1.com/fehler.htm?domain=$1 [L,R]
Lass mal den führenden Slash in der RewriteRule weg. Also:
RewriteRule ^(.*)$ http://domain1.com/fehler.htm?domain=$1 [L,R]
m.m
--
Fremdsprachen Online Lernen http://www.lingo4u.de/
> RewriteCond %{HTTP_HOST} !domain1\.com$ [NC]
> Lass mal den führenden Slash in der RewriteRule weg. Also:
>
> RewriteRule ^(.*)$ http://domain1.com/fehler.htm?domain=$1 [L,R]
Danke das wars!
> Davon abgesehen würde ich eher positiv testen - also wenn falsche
> Domain, dann umleiten:
>
> RewriteCond %{HTTP_HOST} domain2\.com$ [OR]
> RewriteCond %{HTTP_HOST} domain3\.com$
Das wäre mir zu aufwändig. Ich habe hier zuviele virtuelle Domains und
dann jedesmal dafür eine neue Cond zu schreiben. Diese Negation ist
dafür wie geschaffen, alles was nicht ist....
Nochmals danke Euch beiden für den entscheidenen Tipp.
Viele Grüße aus Köln
Ralf Schmidt
--
Das Wort "WINDOWS" stammt aus einem alten Sioux-Dialekt und bedeutet:
"Weißer Mann starrt durch Glasscheibe auf Sanduhr."
s/kaputter/standardkonformer/
HTTP 1.0 kennt kein Host-Header.
Bastian
Das "kaputt" bezog sich auf das "tot rennen". Auch bei HTTP 1.0 sollte
der Client nach einer bestimmten Anzahl Redirects abbrechen. Macht er
das nicht, ist er kaputt.