2009-08-11 6 views
2

Ich versuche, herauszufinden, wie ein. Htaccess-Satz von Regeln, die die Anwesenheit des "www" vor dem zwingen würde der Domäne, wenn sie nicht anfänglich angegeben ist, aber zur gleichen Zeit keine Auswirkungen hat, wenn die Subdomäne vorhanden ist; All dies, ohne einen Domain-Namen hart zu codieren, so dass das Script auf verschiedenen Servern und Konfigurationen portierbar ist..htaccess erfordert WWW für Domäne, aber Subdomain, wenn vorhanden, mit keine harte Codierung

EDIT:

Es tut mir leid ich nicht in der Lage war, dieses Recht in der Faust Platz zu bekommen erklärt. Also, was ich brauche, ist wie folgt:

http://example.com -> Umleitungen an http://www.example.com

http://www.example.com -> nicht umleiten nicht

http://subdomain.example.com -> nicht umleiten nicht

Antwort

12

Diese mod_rewrite es in der Regel für die zweiten tun soll Level-Domänen:

RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$ 
RewriteCond %{HTTPS}s ^on(s)| 
RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
+0

ja, das funktioniert teilweise, aber es deckt nicht den Subdomain Teil ab; Wenn Sie zum Beispiel auf http://subdomain.example.com zugreifen, werden Sie auf http://www.domain.example.com umgeleitet, was Sie nicht tun sollten. – titel

+0

Ich denke, es gibt ein Problem mit SO, die zweite URL, die ich oben schrieb, war http: // www .subdomain.example.com (mit www) – titel

+0

@titel: Ich habe, was Sie sagen wollten. Es sollte jetzt für alle Second-Level-Domains funktionieren. – Gumbo

1
RewriteCond %{HTTP_HOST} ^example\.org 
RewriteRule^http://www.example.org%{REQUEST_URI} [L,R=301] 

Dies wird keine Subdomains wie mail.example.org umleiten.

Verwandte Themen