Zitat von
tinoo
...
Code:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^meine-domain.tld
RewriteRule ^(.*)$ http://www.meine-domain.tld/$1 [R=permanent,L]
Kann mir jemand erklären, wie ich das anderst 'rum hinbekomme, also von mit-www zu ohne-www?...
Ja, das ist ganz einfach. In der Contao .htaccess.default sieht es original jetzt erstmal so aus:
Code:
RewriteCond %{HTTP_HOST} ^domain\.com [NC]
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]
In der Rewrite Condition musst du den Punkt mit nem Backslash escapen, in der Rule nicht.
Was da steht heißt: Wenn eine Anfrage an den Server (die hier in dem Ordner ankommt) mit domain.com beginnt (der Hostteil der Anfrage), dann führe die nächste Rewrite Rule aus. Das Dachzeichen steht für 'Anfang'. Das NC steht für 'Groß- Kleinschreibung egal'.
In der Rule wird am Anfang die komplette Anfrage aufgefangen in '.*'. Punkt steht für jedes beliebige Zeichen, der Stern für 'es können beliebig viele Zeichen kommen (auch keins). Diese ganzen Zeichen die mit der Anfrage kommen (der Host und das Protokoll, z.B. http:// ist hier nicht mit dabei) werden in Klammern gesetzt, um die Zeichen nachher in der Umschreibung benutzen zu können ($1 - Inhalt der ersten Klammer). Es wird also die Anfrage genommen ($1) und nach http://www.domain.com/$1 ($1 ist die ursprüngliche Anfrage ohne Protokoll und ohne Host) umgeleitet. Durch das R=301 wird die Anfrage mit der Meldung 'die angefragte Seite ist jetzt immer auf dieser neuen Seite' an den Browser geschickt. Das L steht für 'last rule', d.h. das, wenn die Condition zutrifft wird diese Rule sofort ausgeführt, d.h. es geht diese neue Anfrage an den Server. D.h. diese htaccess wird jetzt nochmal gecheckt, die Condition trifft jetzt aber nicht mehr zu, wodurch die Rule jetzt einfach übersprungen wird.
Mit diesen Infos dürfte das Ändern jetzt eigentlich leicht gehen.
Code:
RewriteCond %{HTTP_HOST} ^www\.domain\.com [NC]
RewriteRule (.*) http://domain.com/$1 [R=301,L]
Was dein Hoster dir vorschlägt müsste eigentlich funktionieren, ist aber ungewöhnlich, normalerweise gibt man dem Server schon in der httpd.conf die Infos, das Anfragen auf www.example.org nach example.org weitergeleitet werden (kann der Kunde normalerweise in seinem Account einstellen).
In deinem Fall brauchst du die Umschreibung von mit www auf ohne www in der htaccess von Contao nicht mehr zu aktivieren. Anfragen mit www gehen ja in den Ordner, wo nur die .htaccess mit der RedirectPermanent liegt und die umgeleitete Anfrage (jetzt ja ohne www) kommt dann in dem Ordner wo Contao liegt an. Oder mit anderen Worten, in dem Ordner wo dein Contao liegt kommt nie eine Anfrage mit www an.
Lesezeichen