htaccess-Problem

Friedrich Strohmaier damokles4-listen at bits-fritz.de
Di Nov 9 13:43:10 GMT 2010


Hi Bjoern, *,

Hahnefeld Bjoern schrieb:

>ich habe folgende .htaccess angelegt:

[..]

>RewriteEngine On

>RewriteCond %{HTTP_HOST} !^domain.de$ [NC]

.. alles *außer* domain.de ..

>RewriteCond %{HTTP_HOST} !^$ [NC]

>RewriteRule ^(.*) http://www.domain.de/$1 [L,R=301]

>--



>Wenn ich die Domains "domain.info" und "www.domain.info" eingebe, wird
> richtigerweise korrekt auf "http://www.domain.de" umgeleitet.



>Gebe ich allerdings "domain.de" ein, wird nicht auf
> "http://www.domain.de" umgeleitet. Woran liegt das?

Weil Du genau das verlangst:
>RewriteCond %{HTTP_HOST} !^domain.de$ [NC]
.. alles *außer* domain.de ..

generell sind negativ-Bedingungen in Kombination mit äußerster Vorsicht
zu genießen. Da überschneiden sich die Trefferbereiche unglaublich
schnell, ohne dass man es vermuten würde. :o))

>Übrigens: "mail.domain.de" soll die einzige Ausnahme sein, bei der
> eine Subdomain zugelassen werden soll. Idealerweise lässt sich die
> Regel aber um weitere Subdomains erweitern wie z.B.
> "admin.domain.de".

Vielleicht hat gerade jemand schon was fertig im Koffer stecken..


>Im Übrigen funktioniert seitdem auch der Aufruf der Statistiken nicht
> mehr. Also "domain.de/stats" oder "www.domain.de/stats" geht auch
> nicht mehr. Denn wenn oben stehende Regel greift, würde
> "domain.de/stats" auf "www.domain.de/stats" weiterleiten und
> funktionieren...

Nein. Eben deshalb, *weil* sie greift. Dass Du andere Absichten
verfolgst spielt da keine Rolle ;o))

>Ich bin verzweifelt :(



>Vielleicht noch mal zusammengefasst: "www.domain.de" soll der
> "Normalzustand" sein... ;)

Hier das funktionierende Beispiel andersrum:

# "Auserwählte" Domain unter der Inhalt dieses
 # $DOCUMENT_ROOT exclusiv erscheinen soll
 RewriteCond %{SERVER_NAME} !=domain.de
 RewriteRule ^(.*) http://domain.de/$1 [L]

hier wird alles - auch die www.domain.de auf domain.de umgeleitet und
umgeschrieben.

Ungetestet und ohne jede Garantie:

# "Auserwählte" Domain unter der Inhalt dieses
 # $DOCUMENT_ROOT exclusiv erscheinen soll
 RewriteCond %{SERVER_NAME} !=www.domain.de
 RewriteRule ^(.*) http://www.domain.de/$1 [L]

könnte machen was Du willst - ohne die Subdomain-geschichte - die
müsstest Du wohl vorher klären.

> Bin froh und dankbar für Tipps, wie ich die RewriteCond abändern muss.
> Besten Dank und viele Grüße einstweilen

Villeicht hilft es ja.

-- 
Friedrich 

Schöne Grüße von der Sonnenalb