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