Hugo Egon Balder: Rewrite Regeln in der .htaccess Datei

Beitrag lesen

Hallo Forum,

bei der Verwendung von mod_rewrite in der .htaccess habe ich einige Verständnisschwierigkeiten und die entsprechende http://de.selfhtml.org/servercgi/server/rewrite.htm@title=SELF-Seite hilft mir nicht weiter.

Bis heute habe ich das Wegfallen des 'www' beim Aufruf der Domain so gelöst:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]

Das funktioniert auch. Kommen aber weitere mod_rewrite Geschehnisse dazu und die .hataccess wird umfangreicher, dann gibt es immer mehr Probleme. (Z.B. Stichwort Fremdverlinkung von Bildern)

Nun habe ich heute beim Googeln die Seite DARING FIREBALL - Using .htaccess Redirection to Standardize Web Server Addresses gefunden, auf der die Streichung des 'www' mit simplerem Code geschieht:

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule (.*) http://example.com/$1 [R=Permanent]

Wenn ich _diese_ Lösung verwende, habe ich mit all den anderen mod_rewrite Geschehnissen viel weniger Probleme. (Was ich damit sagen will: Es kommt z.B. zu weniger Internal Server Errors.)

Nun meine Fragen:

1.) Ist die erste Möglichkeit die "schlechtere"? Wieso gibt es da mehr Probleme damit als bei der zweiten Lösung?

2.) Was ist denn in der RewriteRule-Zeile der Unterschied zwischen ^(.*)$ und (.*) am Beginn? Was genau bedeuten diese 2 EInleitungen in dieser Zeile?

3.) Gibt es eine empfehlenswerte Seite auf Deutsch, die mich in das Thema einführt?

Wie gesagt, ich habe ja nicht wirklich ein "Problem". Das, was ich will, nämlich den Wegfall des 'www' funktioniert ja. Mit beiden Lösungen. Aber es stört mich einfach, dass ich da was mache/was verwende, was ich eigentlich gar nicht verstehe. Nicht mal ansatzweise. Und da ich nicht blind was kopieren möchte, was mir ein anderer vorgesetzt hat, würd ich gerne wissen und verstehen, was da eigentlich passiert.

Deshalb Danke für jede Antwort!

Liebe Grüße

Hugo E.B.