Kalle: no-www RewriteRule

Hallo,

auf der Seite <no-www.org> findet jeder einen hilfreichen Code:
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC]
    RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]

Ich möchte nun aber nicht nur domain.com umleiten sonder auch [domain2;...;domain20].
  Desweiteren möchte ich nicht drei Bedingungen und drei Regeln haben, sondern nur eine.

Ich habe hiermit versucht:
    RewriteCond %{HTTP_HOST} ^www.([0-9a-z]).com$ [NC]
    RewriteRule ^(.*)$ http://$1.com/$2 [R=301,L]

Läuft aber nicht : )

Verrät mir jemand wie 'es' richtig lautet?

- Kalle

  1. Tag Kalle.

    RewriteCond %{HTTP_HOST} ^www.([0-9a-z]).com$ [NC]

    Dein Klammerausdruck matcht nur genau 1 Zeichen, es sollen doch aber sicher mehrere sein, oder? Versuche es mal so:

    RewriteCond %{HTTP_HOST} ^www.([0-9a-z]+).com$ [NC]

    Siechfred

  2. Hallo!

    Ich möchte nun aber nicht nur domain.com umleiten sonder auch [domain2;...;domain20].
      Desweiteren möchte ich nicht drei Bedingungen und drei Regeln haben, sondern nur eine.

    Ich habe hiermit versucht:
        RewriteCond %{HTTP_HOST} ^www.([0-9a-z]).com$ [NC]
        RewriteRule ^(.*)$ http://$1.com/$2 [R=301,L]

    Läuft aber nicht : )

    Verrät mir jemand wie 'es' richtig lautet?

    Platzhalter für Daten aus vorangehenden RewriteCond beginnen mit %, nicht mit $. 'RewriteRule ^(.*)$ http://%1.com/$1 [R=301,L]' müsste also funktionieren.

    Schlauer wäre es allerdings, gleich einen separaten Virtualhost für www.example.com einzurichten, der nichts enthält, außer einem RedirectPermanent nach example.com. Dazu brauchst du allerdings Zugriff auf die Serverkonfiguration, mit der .htaccess geht das logischerweise nicht.

    Gruß, Moses

    1. Hallo,

      Platzhalter für Daten aus vorangehenden RewriteCond beginnen mit %, nicht mit $. 'RewriteRule ^(.*)$ http://%1.com/$1 [R=301,L]' müsste also funktionieren.

      sollte im Apache Error-log nicht folgende Meldung erscheinen
      Umleitungslimit erreicht?

      da er ja wieder zu ohne www. umleitet, oder täusche ich mich?!

      mfg
      Twilo

      1. Hi Twilo,

        Platzhalter für Daten aus vorangehenden RewriteCond beginnen mit %, nicht mit $. 'RewriteRule ^(.*)$ http://%1.com/$1 [R=301,L]' müsste also funktionieren.

        sollte im Apache Error-log nicht folgende Meldung erscheinen
        Umleitungslimit erreicht?

        da er ja wieder zu ohne www. umleitet, oder täusche ich mich?!

        Wieso wird da von mit www. zu ohne www. und wieder zurück umgeleitet?

        Wir hatten doch

        RewriteCond %{HTTP_HOST} ^www.([0-9a-z]*).com$ [NC]
          RewriteRule ^(.*)$ http://%1.com/$1 [R=301,L]

        Durch die RewriteCond wird ja erst abgeprüft, ob der HTTP_HOST mit www. beginnt und das %1 referenziert ja das ([0-9a-u]*) oben...

        MfG, Dennis.

        --
        Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
        Man sollte nie aufhören zu fragen (Albert Einstein)
        ... aber natürlich erst, nachdem man sämliche FAQ's und Archive durchgelesen hat :-P
        1. Hallo,

          Platzhalter für Daten aus vorangehenden RewriteCond beginnen mit %, nicht mit $. 'RewriteRule ^(.*)$ http://%1.com/$1 [R=301,L]' müsste also funktionieren.

          sollte im Apache Error-log nicht folgende Meldung erscheinen
          Umleitungslimit erreicht?

          da er ja wieder zu ohne www. umleitet, oder täusche ich mich?!

          Wieso wird da von mit www. zu ohne www. und wieder zurück umgeleitet?

          Wir hatten doch

          RewriteCond %{HTTP_HOST} ^www.([0-9a-z]*).com$ [NC]
            RewriteRule ^(.*)$ http://%1.com/$1 [R=301,L]

          Durch die RewriteCond wird ja erst abgeprüft, ob der HTTP_HOST mit www. beginnt und das %1 referenziert ja das ([0-9a-u]*) oben...

          ich seh jetzt gerade, dass ja von www. zu nicht www. umgeleitet werden soll
          ich nehm alles zurück ;-)

          mfg
          Twilo

  3. Hallo,

    Ich habe hiermit versucht:
        RewriteCond %{HTTP_HOST} ^www.([0-9a-z]).com$ [NC]
        RewriteRule ^(.*)$ http://$1.com/$2 [R=301,L]

    hilft der Thread vielleicht weiter?

    mfg
    Twilo

    1. Hallo Twilo,

      hilft der Thread vielleicht weiter?

      Nein, nicht wirklich. (Ich kannte ihn auch schon)

      Mit Moses "Platzhalter Tip" und Siechfreds "Klammerausdrucks Erweiterung" lauft es nun so:

      RewriteCond %{HTTP_HOST} ^www.([0-9a-z-]+).de$ [NC]
      RewriteRule ^(.*)$ http://%1.de/$1 [R=301,L]

      Grüße, Kalle