Robert Bienert: Bestimmte Redirects unterbinden

Moin!

Nachdem die Adressen zu zwei meiner Weblogs auf einer Seite für Linklutsch^WSEOs gelandet sind, habe ich doch des Öfteren Besucher der Art „tolle Informationen hier (P.S.: Dies ist meine Webseite, Danke für den Link.)“ Neben dem erhöhten Administrationsaufwand (Kommentare löschen) probiere ich momentan Links von dieser mittels mod_rewrite zu unterbinden/kreativ zu verändern:

  
<IfModule mod_rewrite.c>  
    RewriteCond %{HTTP_REFERER} ^SEO_LISTE  
    RewriteRule ^.* log.php?y=2007&m=11&url=diese-seite-hat-nur-einen-niedrigen-pagerank  
</IfModule>  

Wie man einen 403er auslösen kann, habe ich im Apache-Handbuch gefunden, aber auch nicht schlecht wäre z.B. „Payment Requirement“ mit einer netten „Fehlerseite“. Kann man denn mit mod_rewrite auch einen Statuscode setzen?

Schönes Wochenende,
Robert Bienert

  1. Moin!

    Kann man denn mit mod_rewrite auch einen Statuscode setzen?

    Ja, kann man. Lies die Doku.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
    1. Hi,

      Kann man denn mit mod_rewrite auch einen Statuscode setzen?
      Ja, kann man. Lies die Doku.

      das wäre aber ein 3xx-Status, oder?

      Cheatah

      --
      X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
      1. Moin!

        Kann man denn mit mod_rewrite auch einen Statuscode setzen?
        Ja, kann man. Lies die Doku.

        das wäre aber ein 3xx-Status, oder?

        Man kann auch 4xx-Stati setzen - R-Flag mit Codeangabe. Allerdings erscheint es mir schlauer, den Status im Skript auszugeben, nicht im Rewriting.

        - Sven Rautenberg

        --
        "Love your nation - respect the others."
        1. Hi,

          Man kann auch 4xx-Stati setzen - R-Flag mit Codeangabe.

          gerade noch mal nachgelesen:

          "'redirect|R  [=code]' (force redirect)
          [...]
          If the status code is outside the redirect range (300-399), then the Substitution string is dropped and rewriting is stopped as if the L flag was used."

          Mit anderen Worten: Ein 4xx geht und führt dazu, dass der Redirect serverintern stattfindet. Das hatte ich falsch in Erinnerung.

          Allerdings erscheint es mir schlauer, den Status im Skript auszugeben, nicht im Rewriting.

          Sowieso :-)

          Cheatah

          --
          X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
        2. Moin!

          Kann man denn mit mod_rewrite auch einen Statuscode setzen?
          Ja, kann man. Lies die Doku.

          Dort heißt es für RewriteRule:

          • redirect|R [=code]' (force redirect)
          Prefix Substitution with http://thishost[:thisport]/ (which makes the new URL a URI) to force a external redirection. […] If you want to use other response codes in the range 300-400 just specify them as a number or use one of the following symbolic names: temp (default), permanent, seeother.

          Man kann auch 4xx-Stati setzen - R-Flag mit Codeangabe.

          4xx ist also mit „300-400“ gemeint?

          Allerdings erscheint es mir schlauer, den Status im Skript auszugeben, nicht im Rewriting.

          Das habe ich jetzt auch getan, erscheint mir logischer.

          Schönes Wochenende,
          Robert

    2. Hallo Sven,

      Ja, kann man. Lies die Doku.

      Ich nehme an Du kennst < http://forum.de.selfhtml.org/hilfe/charta.htm#tipps-fuer-antwortende>.
      Insbesondere "Zu generelle Antworten helfen niemanden weiter. Antwortpostings der Art 'Lies Dir erstmal das Kapitel CSS durch' [...] sind zu vermeiden.".

      Auch wenn Robert als regelmäßiger Forumsbesucher solche Antworten wohl wegstecken kann.

      Grüße

      Daniel

  2. Wie man einen 403er auslösen kann, habe ich im Apache-Handbuch gefunden, aber auch nicht schlecht wäre z.B. „Payment Requirement“ mit einer netten „Fehlerseite“.

    402 ist zwar reserviert, aber noch kein offizieller Bestandteil von HTTP/1.1. Der 403er tut's doch auch.

    Kann man denn mit mod_rewrite auch einen Statuscode setzen?

    Via R-Flag, das aber für 3xx vorgesehen ist. Weitere Möglichkeiten mit mod_rewrite sind mir nicht bekannt, wäre m.E. auch ungewöhnlich, da ja eigentlich nur die URL umgeschrieben werden soll.

    Siechfred

    --
    Hinter den Kulissen passiert viel mehr, als man denkt, aber meistens nicht das, was man denkt.
    1. Hallo Siechfred!

      Via R-Flag, das aber für 3xx vorgesehen ist. Weitere Möglichkeiten mit mod_rewrite sind mir nicht bekannt, wäre m.E. auch ungewöhnlich, da ja eigentlich nur die URL umgeschrieben werden soll.

      Damit erreiche ich auch einen 403, weiß allerdings nicht mehr, wo ich das her habe:

      RewriteEngine on
      RewriteCond %{HTTP_REFERER} ^http.*casino.*$
      RewriteRule ^.* - [F]

      Viele Grüße aus Frankfurt/Main,
      Patrick

      --

      _ - jenseits vom delirium - _
      [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
      Nichts ist unmöglich? Doch!
      Heute schon gegökt?
      1. Moin!

        Damit erreiche ich auch einen 403, weiß allerdings nicht mehr, wo ich das her habe:

        RewriteEngine on
        RewriteCond %{HTTP_REFERER} ^http.*casino.*$
        RewriteRule ^.* - [F]

        Steht das F vielleicht für „failed“?

        Schönes Wochenende,
        Robert

  3. Hallo Robert!

    <IfModule mod_rewrite.c>
        RewriteCond %{HTTP_REFERER} ^SEO_LISTE
        RewriteRule ^.* log.php?y=2007&m=11&url=diese-seite-hat-nur-einen-niedrigen-pagerank
    </IfModule>

    
    >   
    > mit einer netten „Fehlerseite“.  
      
    Alternativ zu [so einer ähnlichen Seite](http://www.atomic-eggs.com/z_testdir/ttt_7.shtml) umleiten ;)  
      
    ~~~apache
      
    RewriteCond %{HTTP_REFERER} ^http.*buch.*eintrag.*$  [NC]  
    RewriteRule ^(.*)selfugb|wae_8.*$ http://www.atomic-eggs.com/z_testdir/ttt_7.shtml  
    
    

    Viele Grüße aus Frankfurt/Main,
    Patrick

    --

    _ - jenseits vom delirium - _
    [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
    Nichts ist unmöglich? Doch!
    Heute schon gegökt?
    1. Hallo Patrick!

      <IfModule mod_rewrite.c>
          RewriteCond %{HTTP_REFERER} ^SEO_LISTE
          RewriteRule ^.* log.php?y=2007&m=11&url=diese-seite-hat-nur-einen-niedrigen-pagerank
      </IfModule>

      
      > >   
      > > mit einer netten „Fehlerseite“.  
      >   
      > Alternativ zu [so einer ähnlichen Seite](http://www.atomic-eggs.com/z_testdir/ttt_7.shtml) umleiten ;)  
        
      Ja, das ist doch auch eine coole Sache, vielleicht sogar besser als meine bisherige „Fehlerseite“, die lediglich über den niedrigen Pagerank (d.h. keine Awareness) aufklärt. Ein bisschen martialisch darf's schon sein >:->  
        
      
      > ~~~apache
        
      
      > RewriteCond %{HTTP_REFERER} ^http.*buch.*eintrag.*$  [NC]  
      > RewriteRule ^(.*)selfugb|wae_8.*$ http://www.atomic-eggs.com/z_testdir/ttt_7.shtml  
      > 
      
      

      Das ^^^ werde ich mir auch merken, kann immer sinnvoll sein.

      Vielen Dank und ein schönes Wochenende,
      Robert