Nakedsoul: httacces weiterleitung

hi
Folgende Sache:
Alle Besucher die nicht durch Direkteingabe auf die domain "example.com" zugreifen,zb (durch partnerlinks)
sollen zu eine andere unterseite weitergeleitet werden zb. example.com/enter

wie kann ich dies mit httacces realisiern?

ps. ein codeschnipsel wäre perfekt!

  1. Hi,

    Alle Besucher die nicht durch Direkteingabe auf die domain "example.com" zugreifen,zb (durch partnerlinks)
    sollen zu eine andere unterseite weitergeleitet werden zb. example.com/enter

    wie kann ich dies mit httacces realisiern?

    Gar nicht.
    Du *kannst* nicht zweifelsfrei bestimmen, ob der Aufruf durch "Direkteingabe" oder dem Folgen einer Verlinkung zustande kam.

    Mit Hilfe des Referrers (Stichwort) kannst du einen Rateversuch in der Hinsicht unternehmen.

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
    1. Hallo Chrisb,

      Mit Hilfe des Referrers (Stichwort) kannst du einen Rateversuch in der Hinsicht unternehmen.

      mittels Cookies, die man auch durch mod_rewrite backen kann, wird aus dem Rateversuch Gewissheit.

      Gruß aus Berlin!
      eddi

      1. Hi,

        mittels Cookies, die man auch durch mod_rewrite backen kann, wird aus dem Rateversuch Gewissheit.

        Hinsichtlich was?

        MfG ChrisB

        --
        Light travels faster than sound - that's why most people appear bright until you hear them speak.
        1. Re:

          mittels Cookies, die man auch durch mod_rewrite backen kann, wird aus dem Rateversuch Gewissheit.
          Hinsichtlich was?

          mittels Flag CO lassen sie sich backen. Mittels HTTP_COOKIE lassen sie sich essen. Mehr Hinweise will ich an dieser Stelle nicht geben. Da das Verfolgte dem Konzept des Hypertextes widerspricht. Ich denke Du und Beat seit in der Lage, den Gedankengang dahinter soweit nachzuvollziehen. Für den OP müssen aber meinerseits aus die Verweise ausreichen, da ich es nicht unterstütze.

          Und wo wir gerade bei Verweisen sind, sollte sich der OP mal fragen, wie es für ihn wäre, wenn er, statt die direkten Verweise in die Dokumentation aufsuchen zu können, an eine Ersatzseite weitergeleitet werden würde.

          Gruß aus Berlin!
          eddi

          1. Hi,

            mittels Cookies, die man auch durch mod_rewrite backen kann, wird aus dem Rateversuch Gewissheit.
            Hinsichtlich was?

            mittels Flag CO lassen sie sich backen. Mittels HTTP_COOKIE lassen sie sich essen. Mehr Hinweise will ich an dieser Stelle nicht geben.

            Oh doch, bitte.

            Ich denke Du und Beat seit in der Lage, den Gedankengang dahinter soweit nachzuvollziehen.

            Nein, leider nicht.

            Wenn ich eine Seite über Direkteingabe der Adresse aufrufe, habe ich möglicherweise noch keinen Cookie.
            Wenn ich sie über einen Link aufrufe, habe ich möglicherweise noch keinen Cookie.

            Wie du diese beiden nicht wirklich voneinander unterscheidbaren Requests jetzt mit Hilfe eines Cookies, den du erst zu backen anfangen kannst, wenn der Request bereits beim Server eingetroffen ist (und der damit erst ab dem nächsten Request durch den gleichen Client überhaupt erst Wirkung zeigen kann), unterscheidbar machen willst, leuchtet mir bisher noch nicht ein.

            MfG ChrisB

            --
            Light travels faster than sound - that's why most people appear bright until you hear them speak.
            1. Re:

              Ich denke Du und Beat seit in der Lage, den Gedankengang dahinter soweit nachzuvollziehen.

              Nein, leider nicht.

              Wenn ich eine Seite über Direkteingabe der Adresse aufrufe, habe ich möglicherweise noch keinen Cookie.
              Wenn ich sie über einen Link aufrufe, habe ich möglicherweise noch keinen Cookie.

              Das ist der unangenehme Nebeneffekt daran. Es heißt bei allen Besuchen sich erstmal einen Cookie verpassen zu lassen. In dem Sinne sind die Rahmenbedingungen (.htaccess) undankbar eng. Komfortabler ließe sich dies natürlich über Scripte abarbeiten, wo man bspw. auf eine "disclaimer"-Seite weitergeleitet wird. Mittels Script und mod_rewirte könnte man dann einen Verweis durch einen zusammengefriemelten query string zur eigentlich aufgesuchten Seite machen. Was aber eine Krücke ist. Wie gesagt, finde ich es auch nicht besonders sinnvoll.

              Wie du diese beiden nicht wirklich voneinander unterscheidbaren Requests jetzt mit Hilfe eines Cookies, den du erst zu backen anfangen kannst, wenn der Request bereits beim Server eingetroffen ist (und der damit erst ab dem nächsten Request durch den gleichen Client überhaupt erst Wirkung zeigen kann), unterscheidbar machen willst, leuchtet mir bisher noch nicht ein.

              In dem Sinne ist die home page (Startseite) ein Sonderfall. Hier kann man es tatsächlich nicht feststellen. Also müsste auch hier ein Keks offeriert werden.

              Wie gesagt birgt das ganze einiges an Problemchen (Liesezeichen) mit sich, die das ganze formal erstmal unsinnig erscheinen lassen. Vorrangig ging es mir um die Möglichkeit.

              Gruß aus Berlin!
              eddi

              1. Erstmal vor ab. ich weiß zu 100% das dies möglich ist ,da ich das früher auf einer seite schon gesehen habe das so was in der art funktioniert. ich weiß nur nicht wie.

                Klarstellungen:

                • mit direkteingabe ist gemeint eingaben in der adressleiste und bookmarks.
                • nur besucher die auf example.com zugreigen sollen auf example.com/enter  geleitet werden NICHT die besucher die auf eine bestimmte unterseite zugreifen wie zb example.com/news/news.html

                Folgende denkweise:
                Partnerlink

                • MIT REFFERER wird sofort die seite example.com/enter aufgerufen (ohne das die seite example.com gelden wird!)
                  Direkteingabe:
                  OHNE Refferer wird man nicht geleitet sondern ganz normal auf example.com verblieben.
                1. Re:

                  Klarstellungen:

                  • mit direkteingabe ist gemeint eingaben in der adressleiste und bookmarks.
                  • nur besucher die auf example.com zugreigen sollen auf example.com/enter  geleitet werden NICHT die besucher die auf eine bestimmte unterseite zugreifen wie zb example.com/news/news.html
                  • MIT REFFERER wird sofort die seite example.com/enter aufgerufen (ohne das die seite example.com gelden wird!)
                    Direkteingabe:
                    OHNE Refferer wird man nicht geleitet sondern ganz normal auf example.com verblieben.

                  Dann gilt ChrisBs Aussage, da es von der Existens des Referer-Headers abhängig ist:

                  <IfModule mod_headers.c>  
                  	<IfModule mod_rewrite.c>  
                  		RewriteEngine  On  
                  		RewriteCond    %{REQUEST_URI}  ^/$  
                  		RewriteCond    %{HTTP_REFERER} !^http://www\.example\.com/  
                  		RewriteCond    %{HTTP_REFERER} !^$  
                  		RewriteRule    .*              http://www.example.com/enter     [L,E=referer:1]  
                    
                  		Header		set    Vary            "referer"               env=referer  
                  		Header		set    Cache-Control   "no-cache, no-store"    env=referer  
                  	</IfModule>  
                  </IfModule>
                  

                  Das ist ein ungetesteter Versuch es halbwegs RFC-konform umzusetzen.

                  Gruß aus Berlin!
                  eddi

                  1. wow edgar es funktioniert 1a, einen riesen dank für diesen codeschnipsel eine wirklich perfekte antwort die vielen nützlich sein wird!!

                    Verbesserung:
                    Ich habe bemerkt das wenn man  auf der eigenen seite auf "home"-link klickt  ,das man auch auf die /enter seite geleitet wird, kann man dies umgehen in dem man den refferer der eigen seiten (in dem falle example.com) ausschließt?

                    Modifikation:
                    wie kann ich mit php den uhrsprungsreffer ermitteln?
                    wenn der uhrsprungsreffer zb der link vom partnerscript http://example.com?tid=90 ist?
                    <?php echo $_GET['?']; ?> funktioniert irgendwie nicht wegen dem rewrite glaube ich...

                    mfg
                    nakedsoul

                    <IfModule mod_headers.c>

                    <IfModule mod_rewrite.c>
                    RewriteEngine  On
                    RewriteCond    %{REQUEST_URI}  ^/$
                    RewriteCond    %{HTTP_REFERER} !^http://www.example.com/
                    RewriteCond    %{HTTP_REFERER} !^$
                    RewriteRule    .*              http://www.example.com/enter     [L,E=referer:1]

                      Header		set    Vary            "referer"               env=referer  
                      Header		set    Cache-Control   "no-cache, no-store"    env=referer  
                    

                    </IfModule>
                    </IfModule>

                    
                    
                    1. sry das 2te mit der "modifikation" funzt jetzt doch könnt ihr streichen.

                      1. ahja fast vergessen. SEO ist auch sehr wichtig,werden die bots zb von google dadurch benachteiligt?
                        wenn ja wie kann man diese auch auschließen von der weiterleitung?

                    2. Re:

                      Was Dir ChrisB schrieb ist abermals richtig. Denn diese Spielerei der Weiterleitung erscheint nüchtern betrachtet alles andere als sinnvoll, insbesondere da Du PHP nutzt. So könntest Du den Dir wichtigen Inhalt, der unter www.example.com/enter dem Nutzer angezeigt wird, fallbedingt auch mittel PHP innerhalb der Startseite anzeigen lassen.

                      wow edgar es funktioniert 1a, einen riesen dank für diesen codeschnipsel eine wirklich perfekte antwort die vielen nützlich sein wird!!
                      Ich habe bemerkt das wenn man  auf der eigenen seite auf "home"-link klickt  ,das man auch auf die /enter seite geleitet wird, kann man dies umgehen in dem man den refferer der eigen seiten (in dem falle example.com) ausschließt?

                      Entweder die Konfiguration tut, was sie soll, oder eben nicht. Sortiere Dich!

                        RewriteCond    %{HTTP\_REFERER} !^http://www\.example\.com/  
                      

                      RewriteCond    %{HTTP_REFERER} !^http://www.example.com

                      Vermutlich müsste einfach nur der abschließende Slash entfernt werden, um auch dem Internet Explorer genüge zu tun.

                      wie kann ich mit php den uhrsprungsreffer ermitteln?

                      PHP bietet vordefinierte Variablen an. Für Dich wäre $_SERVER['HTTP_REFERER'] interessant.

                      wenn der uhrsprungsreffer zb der link vom partnerscript http://example.com?tid=90 ist?

                      Du schriebst etwas davon, das SEO für Dich von Bedeutung sei. Wenn ich aber sehe, dass Du Inhalte unterschieden durch einen query string anzeigen lässt, dann ist das alles andere als suchmaschinengerecht. Die gesamte Struktur Deines Webs muss demnach von Grund auf anders konzipiert werden. Das ist aber nicht im Rahmen von Fragen und Antworten hier im Forum machbar. Geh in die Bibliothek und suche Dir dazu Bücher und suche Dir entsprechende Themen über google & Co. aus dem Internet zusammen.

                      <?php echo $_GET['?']; ?> funktioniert irgendwie nicht wegen dem rewrite glaube ich...

                      Richtig. Das ist dann ein weiterer Punkt sich vorerst von Deiner Spielerei mit Weiterleitungen zu www.example.com/enter zu verabschieden. Du solltest erstmal so fit in PHP werden, dass Du Deine Weiterleitung durch PHP selbst erledigen lassen kannst, was nach den bisherigen Vorgaben jedenfalls erheblich einfacher ist, als Datenbanken und anderer Quatsch, der sich mit PHP veranstalten lässt.

                      Gruß aus Berlin!
                      eddi

                      1. Was Dir ChrisB schrieb ist abermals richtig. Denn diese Spielerei der Weiterleitung erscheint nüchtern betrachtet alles andere als sinnvoll, insbesondere da Du PHP nutzt. So könntest Du den Dir wichtigen Inhalt, der unter www.example.com/enter dem Nutzer angezeigt wird, fallbedingt auch mittel PHP innerhalb der Startseite anzeigen lassen.

                        was chris B sagt ist falsch und hat nichts mit meinen gewünschten ergebnis zu tun.

                        Ich habe bemerkt das wenn man  auf der eigenen seite auf "home"-link klickt  ,das man auch auf die /enter seite geleitet wird, kann man dies umgehen in dem man den refferer der eigen seiten (in dem falle example.com) ausschließt?

                        Entweder die Konfiguration tut, was sie soll, oder eben nicht. Sortiere Dich!

                          RewriteCond    %{HTTP\_REFERER} !^http://www\.example\.com/  
                        
                          RewriteCond    %{HTTP\_REFERER} !^http://www\.example\.com  
                        

                        Vermutlich müsste einfach nur der abschließende Slash entfernt werden, um auch dem Internet Explorer genüge zu tun.

                        In wie fern hat das mit dem oben beschriebenen problem zutun?
                        Brauche noch die lösung des problems wo man die eigene seite als reffer ausschließt.

                        wenn der uhrsprungsreffer zb der link vom partnerscript http://example.com?tid=90 ist?

                        Du schriebst etwas davon, das SEO für Dich von Bedeutung sei. Wenn ich aber sehe, dass Du Inhalte unterschieden durch einen query string anzeigen lässt, dann ist das alles andere als suchmaschinengerecht.

                        wie beschrieben bezieht sich http://example.com?tid=90 auf ein  PARTNERSCRIPT welches ich benutze das hat garnichts mit SEO zu tun meine seiten sind ohne querys... und wie unten gesagt bin ich schon selbst auf die lösung gekommenn......

                2. Hi,

                  • nur besucher die auf example.com zugreigen sollen auf example.com/enter  geleitet werden NICHT die besucher die auf eine bestimmte unterseite zugreifen wie zb example.com/news/news.html

                  Warum denn eigentlich nicht?

                  Ob ich den Inhalt unter example.com/ oder example.com/enter zu sehen kriege, ist doch uninteressant?
                  Und wer von der SuMa aus direkt example.com/news/news.html aufruft, der bekommt davon auch nichts mit, egal unter welcher der beiden Adressen du es mir präsentiert hast.

                  MfG ChrisB

                  --
                  Light travels faster than sound - that's why most people appear bright until you hear them speak.
          2. Ich denke Du und Beat seit in der Lage, den Gedankengang dahinter soweit nachzuvollziehen.

            Ehlich gesagt nein. Du bist nicht in der Lage zu unterscheiden, ob ich deine Seite aus meinen Bookmarks oder von einer anderen Seite - nicht in deinem Einfluss - betätige. Da kannst du Backen so viel du willst.

            mfg Beat

            --
            ><o(((°>           ><o(((°>
               <°)))o><                     ><o(((°>o
            Der Valigator leibt diese Fische
            1. Re:

              Ehlich gesagt nein. Du bist nicht in der Lage zu unterscheiden, ob ich deine Seite aus meinen Bookmarks oder von einer anderen Seite - nicht in deinem Einfluss - betätige. Da kannst du Backen so viel du willst.

              Das sind immer die Folgen davon, wenn man eine Schraube in die Wand nagelt. ;)
              Es ging nur um die Möglichkeit. In wie fern es konkret für den OP sinnvoll ist, wo die Sache jetzt auch eine Gesamtschau ermöglichr, hat der zu entscheiden.

              Gruß aus Berlin!
              eddi

              1. Ehlich gesagt nein. Du bist nicht in der Lage zu unterscheiden, ob ich deine Seite aus meinen Bookmarks oder von einer anderen Seite - nicht in deinem Einfluss - betätige. Da kannst du Backen so viel du willst.
                Das sind immer die Folgen davon, wenn man eine Schraube in die Wand nagelt. ;)
                Es ging nur um die Möglichkeit. In wie fern es konkret für den OP sinnvoll ist, wo die Sache jetzt auch eine Gesamtschau ermöglichr, hat der zu entscheiden.

                Ich habe schon befürchtet, das wir bei "Direkteingabe" an sehr verschiedene Dinge denken.
                Es ging meinem Verständnis nach darum, Zugriffe von einer anonymen Quelle (Suchmaschine, Lesezeichen) verschieden zu behandeln von Aufrufen aus einer Quelle, die im Referrer eine Fremddomain aufführen.
                interne Referrer sind ja kein Problem. Die werden auch höchst selten geblockt.

                mfg Beat

                --
                ><o(((°>           ><o(((°>
                   <°)))o><                     ><o(((°>o
                Der Valigator leibt diese Fische
                1. Re:

                  Ich habe schon befürchtet, das wir bei "Direkteingabe" an sehr verschiedene Dinge denken.
                  Es ging meinem Verständnis nach darum, Zugriffe von einer anonymen Quelle (Suchmaschine, Lesezeichen) verschieden zu behandeln von Aufrufen aus einer Quelle, die im Referrer eine Fremddomain aufführen.
                  interne Referrer sind ja kein Problem. Die werden auch höchst selten geblockt.

                  Alle Besucher die nicht durch Direkteingabe auf die domain "example.com" zugreifen,zb (durch partnerlinks) sollen zu eine andere unterseite weitergeleitet werden zb. example.com/enter

                  Es ist auch alles andere als eindeutig beschrieben. Geht es nur darum "example.com" muss als erstes aufzurufen oder sollen Besucher, die einem Verweis eines anderen Webs folgen auf "example.com/enter" verwiesen werden? Soll nur eine Seite geschützt werden? (Da viel mir nämlich noch ein recht pfiffiger Trick ein, den ich mal sah, der den web-internen Verweis aufs Impressum mit einem Zufallsstring koppelte, der jeweils nur einmal gültig ist. Das ließe sich zwar prinzipiell auch mit allen Ressourcen eines Webs machen, würde aber an den selben Symptomen kranken.)

                  Gruß aus Berlin!
                  eddi

      2. Mit Hilfe des Referrers (Stichwort) kannst du einen Rateversuch in der Hinsicht unternehmen.
        mittels Cookies, die man auch durch mod_rewrite backen kann, wird aus dem Rateversuch Gewissheit.

        Bitte? Was für Kekse hast du gefressen?

        mfg Beat

        --
        ><o(((°>           ><o(((°>
           <°)))o><                     ><o(((°>o
        Der Valigator leibt diese Fische
      3. Hallo,

        Mit Hilfe des Referrers (Stichwort) kannst du einen Rateversuch in der Hinsicht unternehmen.
        mittels Cookies, die man auch durch mod_rewrite backen kann, wird aus dem Rateversuch Gewissheit.

        äh, nicht wirklich. Nein, ich will nicht wieder damit anfangen, dass Cookies als client/userseitige Daten gefälscht werden können.

        Aber mal angenommen, da kommt ein Request auf http://example.com/ von einem Client ohne Keks. Nach deiner Methode würdest du ihm einen Keks anbieten und ihn damit nach http://example.com/enter/ schicken. Da wollte er aber gar nicht hin, und klickt sofort auf den nächstbesten "Home"-Link oder gibt http://example.com/ erneut direkt ein.
        Nun ist unser Client aber darauf dressiert, von Fremden nichts anzunehmen. Er hat also den Keks längst weggeworfen. Und dann schlägt ebendieser Client zum zweiten Mal bei http://example.com/ auf und hat wieder keinen Keks, wird also prompt wieder nach http://example.com/enter/ geschickt. Ganz tolles Kino.

        Fazit: Das Vorhandensein eines Cookies kann als Indiz gelten, dass http://example.com/enter/ bereits besucht wurde. Der Umkehrschluss gilt nicht, es könnte ebensogut sein, dass die Annahme von Cookies verweigert wurde.

        Schönen Abend noch,
         Martin

        --
        Wer im Steinhaus sitzt, soll nicht mit Gläsern werfen.
        1. Hallo Martin,

          Mit Hilfe des Referrers (Stichwort) kannst du einen Rateversuch in der Hinsicht unternehmen.
          mittels Cookies, die man auch durch mod_rewrite backen kann, wird aus dem Rateversuch Gewissheit.

          äh, nicht wirklich. Nein, ich will nicht wieder damit anfangen, dass Cookies als client/userseitige Daten gefälscht werden können.

          die Gefahr besteht immer.

          Aber mal angenommen, da kommt ein Request auf http://example.com/ von einem Client ohne Keks. Nach deiner Methode würdest du ihm einen Keks anbieten und ihn damit nach http://example.com/enter/ schicken. Da wollte er aber gar nicht hin, und klickt sofort auf den nächstbesten "Home"-Link oder gibt http://example.com/ erneut direkt ein.
          Nun ist unser Client aber darauf dressiert, von Fremden nichts anzunehmen. Er hat also den Keks längst weggeworfen. Und dann schlägt ebendieser Client zum zweiten Mal bei http://example.com/ auf und hat wieder keinen Keks, wird also prompt wieder nach http://example.com/enter/ geschickt. Ganz tolles Kino.

          Richtig.

          Fazit: Das Vorhandensein eines Cookies kann als Indiz gelten, dass http://example.com/enter/ bereits besucht wurde. Der Umkehrschluss gilt nicht, es könnte ebensogut sein, dass die Annahme von Cookies verweigert wurde.

          Auch richtig.

          Es verhält sich genauso wie bei Beats Web. Entweder ich ändere meinen User-Agent-String und sehe etwas, oder ich lasse es. Übertragen ist das mit Cookies hier nicht anders. Manche Webs sind funktionell darauf angewiesen, mit Cookies zu arbeiten. So ist das fälschen von Werten oder deaktivieren, wie Du oben anmerkst, genauso relevant wie abgeschaltetes Javascript. ;)

          Gruß aus Berlin!
          eddi

  2. Hallo Seelenstrip,

    wie kann ich dies mit httacces realisiern?

    steht mod_rewrite zur Verfügung?

    (Generell stellt sich Dein Vorhaben gegen das Prinzip des Hypertextes.)

    Gruß aus Berlin!
    eddi