Announcement

Collapse
No announcement yet.

Mod Rewrite - RewriteRule

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Mod Rewrite - RewriteRule

    Hallo,

    ich habe ein Verständnisproblem mit einer RewriteRule, die nicht wie erwartet funktioniert. Die .htaccess mit der RewriteRule befindet sich im "ordner2".

    Folgende Adresse wird im Browser aufgerufen:

    http://localhost/ordner1/ordner2/test/

    Zunächst eine RewriteRule die wie erwartet funktioniert:
    Code:
    RewriteEngine on 
    RewriteRule ^(.+)/$ index.php?param=$1
    Ergebnis:
    Code:
    /ordner1/ordner2/index.php?param=test

    Nur zu Testzwecken wollte, ich einmal alle Zeichen als Parameter anhängen:

    Code:
    RewriteEngine on 
    RewriteRule ^(.+)$ index.php?param=$1
    Dabei habe ich das gleiche Ergebnis erwartet. Erhalte jedoch Folgendes:

    Code:
    /ordner1/ordner2/index.php?param=index.php
    Es sieht so aus als würde die RewriteRule 2 mal ausgeführt werden. Ich kann mir jedoch nicht erklären warum.

    PS.: Die RewriteRules, die ich einsetzte funktionieren alle wie gewollt. Jedoch möchte ich gerne verstehen, warum die eben genannte RewriteRule nicht so funktioniert wie ich mir das vorstelle.
    "(...) deshalb mag ich Binärtechnik. Da gibt es nur drei Zustände: High, Low und Kaputt." (Wau Holland)

    Viele Grüße Novi

  • #2
    Hallo,

    wenn RewriteRules nicht das tun was man erwartet, dann ist es sehr hilfreich das RewriteLog einzuschalten, um nachvollziehen zu können wie der Apache zu seinem Ergebnis kommt.

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Ich hatte überlesen, dass man den RewriteLog nicht in der .htaccess-Datei setzen kann, weshalb ich zunächst ein wenig gebraucht habe.

      Aber ich denke, dass ich nun auch das Verhalten von ModeRewrite verstehe. Das RewriteLog hilft in der Tat stark weiter.

      Nach dem ersten Umschreiben folgt folgende Zeile:
      [INTERNAL REDIRECT]
      Und danach wir die Url noch einmal umgeschrieben. Wie ich es vermutet habe, wird die RewriteRule also 2 mal durchgeführt. Nach der internen Weiterleitung werden die RewriteRules also unter Umständen noch einmal ausgeführt. Das war mir bisher nicht klar.

      Endlosschleifen werden aber erkannt: initial URL equal rewritten URL: [IGNORING REWRITE]
      "(...) deshalb mag ich Binärtechnik. Da gibt es nur drei Zustände: High, Low und Kaputt." (Wau Holland)

      Viele Grüße Novi

      Comment

      Working...
      X