Peter Obstoj: Namensadressen in htaccess umleiten

Hallo,

wie schaffe ich es in .htaccess die Anweisungen

Order deny,allow
Deny from all
Allow from .de

mittels der Anweisungen

RewriteCond
RewriteRule

so umzuschreiben, daß jemand, der nicht aus dem .de Bereich kommt, nicht einfach nur ein "Forbidden" angezeigt bekommt, sondern ich ihn auf eine andere Seite umleiten kann?

  1. hi,

    wie schaffe ich es in .htaccess die Anweisungen
    Order deny,allow
    Deny from all
    Allow from .de
    mittels der Anweisungen
    RewriteCond
    RewriteRule
    so umzuschreiben, daß jemand, der nicht aus dem .de Bereich kommt, nicht einfach nur ein "Forbidden" angezeigt bekommt, sondern ich ihn auf eine andere Seite umleiten kann?

    in dem du auf entsprechende umgebungsvariablen in deiner RewriteCond bezug nimmst.
    (REMOTE_HOST würde ich hier vorschlagen.)

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    1. Okay!
      Das habe ich wie folgt versucht:

      RewriteCond %{REMOTE_HOST} .de [NC]
        RewriteRule ^test$ /home_de.shtml [L]

      RewriteRule ^test$ /home_en.shtml [L]

      Aber irgendwie funktioniert es nicht! Was ist falsch?

      in dem du auf entsprechende umgebungsvariablen in deiner RewriteCond bezug nimmst.
      (REMOTE_HOST würde ich hier vorschlagen.)

      gruß,
      wahsaga

      1. hi,

        Das habe ich wie folgt versucht:

        RewriteCond %{REMOTE_HOST} .de [NC]
          RewriteRule ^test$ /home_de.shtml [L]

        Aber irgendwie funktioniert es nicht! Was ist falsch?

        du nimmst doch wohl nicht an, dass in REMOTE_HOST nur .de steht?
        darüber hinaus wäre ein sonderzeichen wie der punkt an dieser stelle zu maskieren.

        beschäftige dich eingehender mit regulären ausdrücken, denn die brauchst du an der stelle. auf der von mir verlinkten seite sind übrings auch beispiele, sogar welche, wo REMOTE_HOST ähnlich auf vorkommen eines bestimmten literals abgefragt wird.

        gruß,
        wahsaga

        --
        "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
        1. Nun ja, aber *.de oder auch ^*.de führen halt zu einem Serverfehler: "Das angegebene Skript konnte nicht fehlerfrei ausgeführt werden".
          Ist ja nicht so, daß ich das nicht schon versucht hätte... daher meine Frage!

          beschäftige dich eingehender mit regulären ausdrücken, denn die brauchst du an der stelle. auf der von mir verlinkten seite sind übrings auch beispiele, sogar welche, wo REMOTE_HOST ähnlich auf vorkommen eines bestimmten literals abgefragt wird.

          1. hi,

            Nun ja, aber *.de oder auch ^*.de führen halt zu einem Serverfehler: "Das angegebene Skript konnte nicht fehlerfrei ausgeführt werden".

            da ist ja auch noch nicht mal der punkt maskiert, und der quantifier * ergibt ohne vorhergehende zeichenklasse o.ä. auch wenig sinn.

            gruß,
            wahsaga

            --
            "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
            1. Hallo noch mal,

              Soweit ich das mir jetzt also zusammenreimen kann, müßte

              RewriteCond %{REMOTE_HOST} ^.*.de [NC]

              zum Erfolg führen. Tut es aber nicht?!

              da ist ja auch noch nicht mal der punkt maskiert, und der quantifier * ergibt ohne vorhergehende zeichenklasse o.ä. auch wenig sinn.

              gruß,
              wahsaga

              1. hi,

                Soweit ich das mir jetzt also zusammenreimen kann, müßte

                RewriteCond %{REMOTE_HOST} ^.*.de [NC]

                zum Erfolg führen. Tut es aber nicht?!

                hast du denn mal überprüft, ob REMOTE_HOST überhaupt gefüllt ist?
                (beispielsweise per PHP, print_r($_SERVER))

                und http://httpd.apache.org/docs/misc/rewriteguide.html könnte ggf. auch noch weiterhelfen.

                gruß,
                wahsaga

                --
                "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
                1. Ha,

                  genau das is es!
                  Kein REMOTE_Host weit und breit. Und nun?
                  Wie ändere ich das / lass ich das ändern und was, wenn es nicht geht?

                  Ich werd hier noch bekloppt! ;-)

                  hast du denn mal überprüft, ob REMOTE_HOST überhaupt gefüllt ist?
                  (beispielsweise per PHP, print_r($_SERVER))

                  gruß,
                  wahsaga