geka: warum funktioniert meine Browserweiche in htaccess nicht

Hallo,

Da Opera die Website überhaupt nicht richtig darstellt und der IE teilweise Probleme hat, möchte ich bis zur Behebung der Probleme eine Browserweiche mit Weiterleitungen zu einer funktionierenden älteren Version der Website zu bzw. zu einem erklärenden Hinweis einrichten.

Dies in der htaccess Datei zu konfigurieren erscheint mir am sinnvollsten, leider funktioniert mein Versuch aber nicht, obwohl die bereits vorhandenen Weiterleitungen für www. und auch andere URL-Namen nach wie vor richtig arbeiten.

Hier meine Einträge im .htaccess, kann jemand sagen, was daran falsch ist?

Die ersten drei HTTP_HOST- Einträge funktionieren, die beiden letzten (HTTP_USER_AGENT)funktionieren nicht nicht.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^domainname.de$
RewriteRule (.*) http://www.domainname.de/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^domainname-alternative 1.de$ [NC]
RewriteRule ^(.*)$ http://www.domainname.de/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^domainname-alternative 2.de$ [NC]
RewriteRule ^(.*)$ http://www.domainname.de/$1 [R=301,L]

RewriteCond %{HTTP_USER_AGENT}  ^IE.*
RewriteRule ^/$ /oldversion/index.html  [L]

RewriteCond %{HTTP_USER_AGENT}  ^opera.*
RewriteRule ^/$ /operainfo.html [L]

Da ich kein Code-Profi bin, helfen mir allgemein verständlich formulierte Hinweise oder direkte Korrekturen mehr, als hochprofessioneller minimalistischer Fach-Slang;-)

Ich bin gespannt und vielen Dank im Vorraus  Georg

  1. Hallo,

    RewriteCond %{HTTP_USER_AGENT}  ^IE.*

    Der USER_AGENT eines IE beginnt normalerweise mit: "Mozilla/4.0 (compatible; MSIE ...."

    RewriteCond %{HTTP_USER_AGENT}  ^opera.*

    Opera ;-) mit großem rotem O

    Über den Sinn und Unsinn eines Tests auf den UA hast du dich informiert?

    Grüße,

    Jochen

    --
    Kritzeln statt texten: Scribbleboard
    1. Der USER_AGENT eines IE beginnt normalerweise mit: "Mozilla/4.0 (compatible; MSIE ...."

      »» RewriteCond %{HTTP_USER_AGENT}  ^opera.*

      Opera ;-) mit großem rotem O

      Hallo Jochen,
      ich habe ohne Erfolg verschiedene Schreibweisen ausprobiert u.a. auch "RewriteCond %{HTTP_USER_AGENT}  ^MSIE.*"
      sowie Opera mit grossem O, et funzt einfach nicht.

      Über den Sinn und Unsinn eines Tests auf den UA hast du dich informiert?

      Bei Opera habe ich das erst gar nicht bemerkt ich vermute, es ein CSS Problem. Da geschätzt gerade einmal 0,01% meiner Besucher Opera einsetzen war ich bislang so frei, dies zu ignorieren.
      Mit Firefox und Safarie läuft alles einwandfrei, der InternetExplorer zickt  nun bei einer neu eingerichteten Bildergalerie gelegentlich herum, da scheint zusätzlich ein CSS-Problem zu bestehen.

      Zumindest ursprünglich war das Ganze 100% valide.

      Hoffe mit der Zeit es allen Browsern recht machen zu können, als Coding Leichtmatrosen kann ich das aber leider nicht mal eben "on-the-Fly" Hacken;-)

      PS. habe gerade mit meinem Hoster gesprochen, möglicher Weise liegt's am verwendeten Zeichensatz.

      Mal sehen, auf jeden Fall: wieder was gelernt;-)

      Gruß,  Georg

      1. Moin Moin!

        »» Der USER_AGENT eines IE beginnt normalerweise mit: "Mozilla/4.0 (compatible; MSIE ...."

        »» »» RewriteCond %{HTTP_USER_AGENT}  ^opera.*
        »»
        »» Opera ;-) mit großem rotem O

        Hallo Jochen,
        ich habe ohne Erfolg verschiedene Schreibweisen ausprobiert u.a. auch "RewriteCond %{HTTP_USER_AGENT}  ^MSIE.*"
        sowie Opera mit grossem O, et funzt einfach nicht.

        Rate mal, welchen User-Agent-Header Opera ab Werk sendet. Tipp: Er beginnt nicht mit "O".

        PS. habe gerade mit meinem Hoster gesprochen, möglicher Weise liegt's am verwendeten Zeichensatz.

        Unsinn.

        Alexander

        --
        Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
        1. Rate mal, welchen User-Agent-Header Opera ab Werk sendet.

          User-Agent: Opera/9.64 (Windows NT 6.0; U; de) Presto/2.1.1

          Tipp: Er beginnt nicht mit "O".

          O ist also nicht identisch mit O?
          Ist das jetzt eine philosophische Frage?

          Mathias

          1. Kann nicht mal jemand einfach so eben die 4 Zeilen von Anfang bis Ende vollständig posten? -das kann doch nicht so schwer sein?!

            Ist vielleicht nicht ganz so amüsant wie dialektische Spiegelfechtereien über Servercodes oder was auch immer, aber ich bin leider schlichtweg zu dumm, mir über den Sinn kryptische Zeichen tiefschürfende Gedanken machen zu können.

            Ich kann leider nur copy/paste, wie schon gesagt, bin Coding-HyperUltraLeichtmatrose.

            Gruß,  Georg

            1. Moin Moin!

              Kann nicht mal jemand einfach so eben die 4 Zeilen von Anfang bis Ende vollständig posten? -das kann doch nicht so schwer sein?!

              SelfHTML, nicht GetHTML

              Ich kann leider nur copy/paste

              Würdest Du "rm -rf /" in ein Terminalfenster pasten und ausführen, wenn ich Dir sagen würde, dass das Deine Probleme sicher entfernt?

              Alexander

              --
              Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
              1. Na, wenn de sonst nix zu tun hast als Fragen zu beantworten die keiner stellt, schönes Restjahr ,oder auch Restlebe noch.

              2. und übrigens, noch ein kleiner Hinweis:

                es heist selfHTML und nicht selfBEFRIEDIGUNG.

                1. Moin Moin!

                  und übrigens, noch ein kleiner Hinweis:

                  es heist selfHTML und nicht selfBEFRIEDIGUNG.

                  Die Erkenntnis spritzt ja geradezu aus Dir heraus. Und das nur so kurz nach dem ich Dir den Unterschied zwischen get und self gezeigt habe. Faszinierend.

                  Alexander

                  --
                  Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
                  1. Die Erkenntnis spritzt ja geradezu aus Dir heraus. Und das nur so kurz nach dem ich Dir den Unterschied zwischen get und self gezeigt habe. Faszinierend.

                    Du bist zeigefreudig und turnst nur Dich selbst damit an.

          2. Moin Moin!

            »» Rate mal, welchen User-Agent-Header Opera ab Werk sendet.

            User-Agent: Opera/9.64 (Windows NT 6.0; U; de) Presto/2.1.1

            »» Tipp: Er beginnt nicht mit "O".

            O ist also nicht identisch mit O?
            Ist das jetzt eine philosophische Frage?

            Nö, ich bin nur nicht mehr ganz auf dem neuesten Stand bei Opera. Die alten Versionen faken nämlich einen IE.

            Alexander

            --
            Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
        2. Rate mal, welchen User-Agent-Header Opera ab Werk sendet. Tipp: Er beginnt nicht mit "O".

          20. Juni 2006
          Opera 9.00
          Changed default user agent string to identify as Opera.
          http://www.opera.com/docs/changelogs/windows/900/

          (Auch wieder so ein Fall von »Ich weiß die Antwort, aber sage sie dir nicht. Ätsch!«)

          Mathias

      2. Hi,

        Der USER_AGENT eines IE beginnt normalerweise mit: "Mozilla/4.0 (compatible; MSIE ...."

        ich habe ohne Erfolg verschiedene Schreibweisen ausprobiert u.a. auch "RewriteCond %{HTTP_USER_AGENT}  ^MSIE.*"

        Mach dir mal klar, welche Bedeutung ^ am Beginn des Suchmusters hat.

        MfG ChrisB

        --
        Light travels faster than sound - that's why most people appear bright until you hear them speak.
        1. Mach dir mal klar, welche Bedeutung ^ am Beginn des Suchmusters hat.

          »Ich weiß die Lösung, aber ich sage sie dir nicht.«

          Mathias

          1. Hi,

            Mach dir mal klar, welche Bedeutung ^ am Beginn des Suchmusters hat.

            »Ich weiß die Lösung, aber ich sage sie dir nicht.«

            Dass dir als Kind immer sämtliche Überraschungen zum Geburtstag und zu Weihnachten verdorben wurden, weil dir jemand schon vorher verraten hat, was in den Geschenken drin ist, kann ich jetzt nicht mehr ändern - nur noch mein Mitgefühl ausdrücken :-)

            Naaa gut - ^ am Anfang eines RegExp-Suchmusters steht dafür, dass das nachfolgende am Anfang des zu durchsuchenden Strings stehen muss [1] - also kann man nicht erwarten, ^MSIE.* zu finden, wenn sich das MSIE weiter hinten im User-Agent-String befindet.

            [1] Resp. einer Zeile, je nach Modifier. Beim aktuellen Einsatz aber weniger relevant.

            MfG ChrisB

            --
            Light travels faster than sound - that's why most people appear bright until you hear them speak.
          2. Kompliment! so ist es.

      3. Hallo,

        ich habe ohne Erfolg verschiedene Schreibweisen ausprobiert u.a. auch "RewriteCond %{HTTP_USER_AGENT}  ^MSIE.*"

        Die anderen Einträge in die .htaccess wie RewriteRule müssen natürlich auch stimmen. Funktioniert es denn schonmal, wenn die jeweilige Condition auskommentiert ist?

        Grüsse

        Cyx23

        1. Die anderen Einträge in die .htaccess wie RewriteRule müssen natürlich auch stimmen. Funktioniert es denn schonmal, wenn die jeweilige Condition auskommentiert ist?

          Ich habe die Zeilen von der Apache-Referenzseite http://httpd.apache.org/docs/2.2/mod/quickreference.html

          RewriteCond  %{HTTP_USER_AGENT}  ^Mozilla.*
          RewriteRule  ^/$                 /homepage.max.html  [L]

          RewriteCond  %{HTTP_USER_AGENT}  ^Lynx.*
          RewriteRule  ^/$                 /homepage.min.html  [L]

          RewriteRule  ^/$                 /homepage.std.html  [L]

          und diese abgewandelt.  Aber vielleicht ist das auch alles kompletter Unsinn.

          Gruß,  Georg

          1. Hallo,

            »» Die anderen Einträge in die .htaccess wie RewriteRule müssen natürlich auch stimmen. Funktioniert es denn schonmal, wenn die jeweilige Condition auskommentiert ist?

            Ich habe die Zeilen von der Apache-Referenzseite http://httpd.apache.org/docs/2.2/mod/quickreference.html

            Nein, hast Du nicht. Du hast sie von einer Unterseite "RewriteCond"; hast Du schon irgendwo gepostet wie Deine gesamte .htaccess ausschaut? Und vor allem: Funktioniert es -die RewriteRule- denn schonmal, wenn die jeweilige (eine) Condition auskommentiert ist?

            Schema entspr. Deinem Beispiel für einen Browser "Mozilla":

            RewriteCond  %{HTTP_USER_AGENT}  ^Mozilla.*

            RewriteRule  ^/$                 /homepage.max.html  [L]

            Grüsse

            Cyx23

            1. »».... hast Du schon irgendwo gepostet wie Deine gesamte .htaccess ausschaut?

              In meinem ersten Posting steht sicher so gut wie alles, was der Kenner zum erfassen des Sachverhaltes braucht.

              1. Hallo,

                »».... hast Du schon irgendwo gepostet wie Deine gesamte .htaccess ausschaut?

                In meinem ersten Posting steht sicher so gut wie alles, was der Kenner zum erfassen des Sachverhaltes braucht.

                Und in meinem ersten Posting steht sicher so gut wie alles, was Du noch zum Erfassen brauchst.

                Aber wenn Dir das so online zu stressig wird, empfehle ich etwas wie XAMPP, dann kannst Du in Ruhe testen.

                Grüsse

                Cyx23

                1. OK, vielleicht hätte ich den entscheidenden Satz an den Anfang meines Postings stellen sollen.

                  Zitat:
                  "Da ich kein Code-Profi bin, helfen mir allgemein verständlich formulierte Hinweise oder direkte Korrekturen mehr, als hochprofessioneller minimalistischer Fach-Slang;-)"

                  Da hat es auch keinen Zweck "Beschult " zu werden, die Vorraussetzungen dafür sind einfach nicht gegeben und für 4 Zeilen Code zudem etwas unverhältnismäßig.

                  Wenn ich selbst in einem Forum für Fotografie, meiner Profession, eine Frage sehe die ich beantworten kann, mache ich das gerne, -auch für Laien verständlich und in aller Ausführlichkeit.
                  "Fortbildungstipps" gebe ich allenfalls zusätzlich.

                  Dem Hilfesuchenden ist damit sofort geholfen und er kann sich, wenn er mag, weiter mit dem Thema beschäftigen.

                  Wenn ich zu einem Thema keine Lösung nennen kann oder will, enthalte ich mich einfach des Postens.

                  Gruß,  Georg

                  1. Mahlzeit geka,

                    "Da ich kein Code-Profi bin, helfen mir allgemein verständlich formulierte Hinweise oder direkte Korrekturen mehr, als hochprofessioneller minimalistischer Fach-Slang;-)"

                    Was ist an "^ am Anfang eines RegExp-Suchmusters steht dafür, dass das nachfolgende am Anfang des zu durchsuchenden Strings stehen muss - also kann man nicht erwarten, ^MSIE.* zu finden, wenn sich das MSIE weiter hinten im User-Agent-String befindet." bitte NICHT allgemein verständlich bzw. KEINE direkte Korrektur?

                    Wenn Du nicht WILLST, dass man Dir hilft, dann wende Dich nicht an dieses Forum. Im Allgemeinen ist es hier zudem üblich, dem Fragesteller bzw. Ratsuchenden zu helfen, indem man ihm hilft, sich selbst zu helfen (was das Wort "SELF" bedeutet, weißt Du?) - fertige Code-Fragmente und unkommentierte Komplettlösungen wirst Du nahezu vergebens suchen.

                    Da hat es auch keinen Zweck "Beschult " zu werden, die Vorraussetzungen dafür sind einfach nicht gegeben und für 4 Zeilen Code zudem etwas unverhältnismäßig.

                    Darum geht es nicht. Es geht darum, dass Du die Ursache Deines Problems selbst erkennst und es selbst beheben kannst. Dann wird nämlich dieses oder ähnliche Probleme bei Dir nicht mehr auftreten. Darüber hinaus werden alle, die ein ähnliches Problem plagt und die die Forumssuche bedienen (können), das Problem genauso für sich selbst lösen können - anstatt beim nächsten verwandten Problem wieder wie der Ochs vorm Berg zu stehen.

                    Dem Hilfesuchenden ist damit sofort geholfen und er kann sich, wenn er mag, weiter mit dem Thema beschäftigen.

                    Dir sollte klar sein, dass die wenigsten das tun werden. Im Gegenteil. Sie werden - "da dort im Forum ja immer so kompetent und schnell geholfen wird, auch ohne dass man sich selbst ernsthaft mit seinen Problemen beschäftigen muss" - immer wieder mit Kleinigkeiten, die sich mit etwas Nachdenken und Lektüre selbst beheben ließen, dort aufschlagen.

                    Wenn ich zu einem Thema keine Lösung nennen kann oder will, enthalte ich mich einfach des Postens.

                    Wenn Du nicht möchtest, dass Dir bei einem Problem geholfen wird, dann ignoriere doch auch weiterhin die Dir gegebenen Hinweise und Antworten ... erwarte dann aber bitte nicht ernsthaft, dass Dir irgendwann jemand eine Komplettlösung fürs Leben abtippt, wenn Du weiterhin so penetrant die Leute vergrätzt, die Dir gerne helfen würden.

                    MfG,
                    EKKi

                    --
                    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
          2. Mahlzeit geka,

            RewriteCond  %{HTTP_USER_AGENT}  ^Mozilla.*
            RewriteRule  ^/$                 /homepage.max.html  [L]

            RewriteCond  %{HTTP_USER_AGENT}  ^Lynx.*
            RewriteRule  ^/$                 /homepage.min.html  [L]

            RewriteRule  ^/$                 /homepage.std.html  [L]

            und diese abgewandelt.

            ... aber nicht verstanden, wie reguläre Ausdrücke aufgebaut sind bzw. welches Zeichen welche Bedeutung hat. Wenn du sie verwenden willst, solltest Du Dich darüber informieren.

            Freundlicherweise hat ChrisB Dir eine kurze Erläuterung der Ursachen Deines Problems gegeben. Es zu lösen ist dann jetzt Deine Aufgabe.

            Aber vielleicht ist das auch alles kompletter Unsinn.

            Nö, komplett nicht. Nur halt nicht bis zu Ende gedacht und im Vorfeld nicht ausreichend informiert. :-)

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
            1. Nun, ich prahle nicht mit Kenntnissen, sondern suche lediglich eine nun wirklich überschaubare 4 Zeilen umfassende Lösung.

              Wer sie kennt, möge sie unumwunden und geradeheraus in Form kompletter Codezeilen hier mitteilen.

              Alles Klar?

  2. Moin Moin!

    Du weißt, dass HTTP_USER_AGENT jeden beliebigen Müll enthalten kann und exakt NICHTS über den Browser und dessen Fähigkeiten aussagt? Der Wert ist in vielen Browsern aus einer Liste auswählbar oder gar beliebig zu setzen, diverse Firewalls und Proxies manipulieren oder entfernen diesen Header ebenfalls.

    Erkläre uns Dein wirkliches Problem, nicht das Problem mit Deinem kaputten Lösungsansatz.

    Alexander

    --
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".