Max Faber: mod_rewrite

tag zusammen,
mod_rewrite ist ja toll, aber bei mir geht es leider nicht, wie es denn soll.
Mein Code:

RewriteEngine On
RewriteRule !index.php - [C]
RewriteRule ^(.*)$ index.php?pfad=$1 [L]

Und das soll er machen:

http://www.meinserver.de/meinverzeichnis/nocheinverzeichnis/index.php
oder
http://www.meinserver.de/meinverzeichnis/nocheinverzeichnis/
oder
http://www.meinserver.de/meinverzeichnis/

wird jeweils zu

http://www.meinserver.de/?action=meinverzeichnis
oder vielleicht noch zu
http://www.meinserver.de/?action=meinverzeichnis/nocheinverzeichnis

So weit so gut, was jedoch geschieht ist
"zu viele weiterleitungen, kann auch bei fehlerhaften weiterleitungen auftreten".

tja, nun bitte ihr, dennn ich bin am ende

für den fall, dass ich bestimmte verzeichnisse aus diesem system ausschließen kann, wäre das auch toll.

grüße

  1. RewriteRule ^(.*)$ index.php?pfad=$1 [L]

    heißt natürlich

    RewriteRule ^(.*)$ index.php?action=$1 [L]
    macht aber keinen Unterschied.

  2. Hi Max,

    RewriteEngine On
    RewriteRule !index.php - [C]
    RewriteRule ^(.*)$ index.php?pfad=$1 [L]

    So weit so gut, was jedoch geschieht ist
    "zu viele weiterleitungen, kann auch bei fehlerhaften weiterleitungen auftreten".

    Nun, da steht doch im Prinzip schon, was der Fehler ist. Du leitest /foo/bar/ weiter auf /index?action=foo/bar - und das dann, wenn der aufgerufen Pfad != index.php ist.

    Da frage ich dich ist:
    index.php == index.php?action=foo/bar ??

    Aber mal noch abgesehen davon, dass sieht mir so aus, als würde index.php die anderen Dateien includen? Du hast doch hoffentlich einen Schutz eingebaut, dann /index.php?action=.htaccess oder /index.php?action=/etc/passwd und ähnliches zu keinen Ergebnis führen?

    MfG, Dennis.

    --
    Mein SelfCode: ie:{ fl:{ br:^ va:) ls:< fo:) rl:( n4:& ss:) de:> js:( ch:{ sh:( mo:} zu:|
    Zufällige Hinweise:
    ------------------------
    Interessiert in Modellbahn?
    Wie wärs mit http://www.go-modellbahn.de?
    1. Nun, da steht doch im Prinzip schon, was der Fehler ist. Du leitest /foo/bar/ weiter auf /index?action=foo/bar - und das dann, wenn der aufgerufen Pfad != index.php ist.

      Da frage ich dich ist:
      index.php == index.php?action=foo/bar ??

      Ja, gute frage. ich habe natürlich keinen schimmer davon, aber eine anwort habe ich leider noch immer nicht.

      Aber mal noch abgesehen davon, dass sieht mir so aus, als würde index.php die anderen Dateien includen? Du hast doch hoffentlich einen Schutz eingebaut, dann /index.php?action=.htaccess oder /index.php?action=/etc/passwd und ähnliches zu keinen Ergebnis führen?

      Nein, habe ich natürlich nicht, weil ich zum einen nicht weiß, wie ich diesen schutz einbaue, bzw. verzeichnisse ausschließe, aber andererseits auch gar nichts include.

      mfg

      1. Hi Max,

        Ja, gute frage. ich habe natürlich keinen schimmer davon, aber eine anwort habe ich leider noch immer nicht.

        Du musst die Abfrage oben so abändern, dass diese auch noch zeichen nach index.php akzetiert. Probier es mal mit index.php(.*)

        Aber mal noch abgesehen davon, dass sieht mir so aus, als würde index.php die anderen Dateien includen? Du hast doch hoffentlich einen Schutz eingebaut, dann /index.php?action=.htaccess oder /index.php?action=/etc/passwd und ähnliches zu keinen Ergebnis führen?

        Nein, habe ich natürlich nicht, weil ich zum einen nicht weiß, wie ich diesen schutz einbaue, bzw. verzeichnisse ausschließe, aber andererseits auch gar nichts include.

        Wenn du nicht includest, ist das nicht so schlimm (sollte zumindest nicht, kA, was du machst). Schlimm ist, wenn du einfach einen Pfad, der im GET Parameter steht includest, weil man sich so z.B. eine .htaccess Datei oder Dateien außerhalb des DokumentRoots anschauen kann.

        MfG, Dennis.

        --
        Mein SelfCode: ie:{ fl:{ br:^ va:) ls:< fo:) rl:( n4:& ss:) de:> js:( ch:{ sh:( mo:} zu:|
        Zufällige Hinweise:
        ------------------------
        Interessiert in Modellbahn?
        Wie wärs mit http://www.go-modellbahn.de?
        1. Danke, Dennis, aber

          Du musst die Abfrage oben so abändern, dass diese auch noch zeichen nach index.php akzetiert. Probier es mal mit index.php(.*)

          Da bleibt das Problem mit den Weiterleitungen leider bestehen.

          Grüße

        2. hi,

          Du musst die Abfrage oben so abändern, dass diese auch noch zeichen nach index.php akzetiert. Probier es mal mit index.php(.*)

          nein, siehe https://forum.selfhtml.org/?t=96052&m=583550.

          gruß,
          wahsaga

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

      Nun, da steht doch im Prinzip schon, was der Fehler ist. Du leitest /foo/bar/ weiter auf /index?action=foo/bar - und das dann, wenn der aufgerufen Pfad != index.php ist.

      Da frage ich dich ist:
      index.php == index.php?action=foo/bar ??

      für mod_rewrite: JA, weil es den query string überhaupt nicht betrachtet.

      gruß,
      wahsaga

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

        Da frage ich dich ist:
        index.php == index.php?action=foo/bar ??

        für mod_rewrite: JA, weil es den query string überhaupt nicht betrachtet.

        Ok, ich gebe mich geschlagen ;-)

        Aber woran liegts dann? Wäre es nicht denkbar, dass durch irgeneine Fehlkonfiguration des Servers da mit dem Querystring was schief läuft?

        MfG, Dennis.

        --
        Mein SelfCode: ie:{ fl:{ br:^ va:) ls:< fo:) rl:( n4:& ss:) de:> js:( ch:{ sh:( mo:} zu:|
        Zufällige Hinweise:
        ------------------------
        Meine Homepage: http://www.riehle-web.com
        Tutorial: http://tutorial.riehle-web.com
        1. hi,

          Aber woran liegts dann?

          RewriteRule !index.php - [C]

          • bin mir nicht sicher, ob !index.php hier das gewünschte macht.
          • das flag [C] sehe ich in der auflistung der für RewriteCond gültigen nicht auftauchen

          gruß,
          wahsaga

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