thomas: Apache: rewrite - Engine

Hallo,

jetzt habe ich ja schon viel mit der Rewrite-Engine und den Rules gemacht und irgendwie hat auch alles geklappt.
Aber jetzt kommt antürlich wieder mal was, wo ich nicht weiterkomme:

Ich möchte immer dann, wenn der User ein Verzeichnis aufruft, per Rewrite umleiten.
Jetzt habe ich da was mit -d gefunden, also:

RewriteCond %{REQUEST_URI} -d
RewriteRule (.*)$ /cgi-bin/Anzeige.pl?RequestedPage=$1 [L]

Aber ich kriege nur Server-Errors.
Hat das schon mal einer gemacht.

Vielen Dank im voraus.
Gruss
Thomas

  1. Hi,

    Aber ich kriege nur Server-Errors.

    ja, und, warum enthälst Du uns den Eintrag des Error-Logs vor?

    Cheatah

    1. Hi,

      Aber ich kriege nur Server-Errors.

      ja, und, warum enthälst Du uns den Eintrag des Error-Logs vor?

      Cheatah

      Tool, Cheatah, einen besseren Umgangston wünsche ich Dir für die Zukunft.

      Gruss
      Tohmas

      1. Hallo Tohmas,

        Tool, Cheatah, einen besseren Umgangston wünsche ich Dir für die Zukunft.

        Cheatah ist kein Werkzeug, auch wenn er aussieht wie ein bekannter
        Charakter aus Raumschiff Enterprise ...

        *SCNR*

        Komisch, aber bei sowas hat sich bisher wirklich noch niemand gleich
        beleidigt gefühlt und ich wüßte auch nicht, wo Cheatah sich hier im
        Umgangston vergriffen haben sollte ... nunja ;-)

        Viele Grüße,
        Stefan

  2. Hallo Thomas,

    Ich möchte immer dann, wenn der User ein Verzeichnis aufruft, per Rewrite umleiten.
    Jetzt habe ich da was mit -d gefunden, also:

    was genau soll -d bewirken?

    RewriteCond %{REQUEST_URI} -d
    RewriteRule (.*)$ /cgi-bin/Anzeige.pl?RequestedPage=$1 [L]

    RewriteCond %{REQUEST_URI}
    RewriteRule ^/verzeichnis/(.*)$ /cgi-bin/Anzeige.pl?RequestedPage=/verzeichnis/$1 [L]

    diese Variante finde ich irgendwie logischer. Bei Deiner Variante wird
    ja nirgends festgelegt, dass die RewriteRule nur für dieses eine Ver-
    zeichnis gilt.

    Viele Grüße,
    Stefan

    1. Hoi Stefan,

      Ich möchte immer dann, wenn der User ein Verzeichnis aufruft, per Rewrite
      umleiten. Jetzt habe ich da was mit -d gefunden, also:

      was genau soll -d bewirken?

      Es ueberprueft, ob der ermittelte Dateiname ein Verzeichnis ist.

      RewriteCond %{REQUEST_URI} -d
      RewriteRule (.*)$ /cgi-bin/Anzeige.pl?RequestedPage=$1 [L]

      Ich wuerde eher schreiben:

      RewriteCond %{REQUEST_FILENAME} -d
      RewriteRule (.*) /cgi-bin/Anzeige.pl?RequestedPage=$1 [L]

      RewriteCond %{REQUEST_URI}

      Was bitte soll das denn? ;-)

      diese Variante finde ich irgendwie logischer.

      Ich nicht ;-) Bei dir ist die RewriteCond voellig ueberfluessig, ausserdem
      duerfte es einen 500er geben.

      Bei Deiner Variante wird
      ja nirgends festgelegt, dass die RewriteRule nur für dieses eine Ver-
      zeichnis gilt.

      Das muss man durch Verkettungen natuerlich noch weiter einschraenken, z. B.
      so:

      RewriteCond %{REQUEST_FILENAME} -d
      RewriteCond %{REQUEST_URI} !^/verzeichnis/
      RewriteRule (.*) /cgi-bin/Anzeige.pl?RequestedPage=$1 [L]

      Hier werden alle Zugriffe auf das Verzeichnis '/verzeichnis/' ausgenommen.

      Gruesse,
       CK