butterbrot: RewriteRule .htaccess

Hi,

Ich möchte gerne vollgende Regel anwänden:
RewriteRule ^index/explore/(.*)#delete_file /_delete.php?file=$1
RewriteRule ^index/explore/(.*) /index.php?folder=$1

Wenn ich jetzt auf "index/explore/myfolder" gehe,
bringt er mich nach "/index.php?folder=myfolder".

alles kein Problem, wenn ich jetzt will, dass wenn "#delete_file" am ende steht er mich woanders hinbring.
Problem ist jetzt das die eine Rule, die andere gewissermasen Überschreibt. Kann man das verhintern?

  1. Hallo butterbrot!

    Ich möchte gerne vollgende Regel anwänden:

    ;)

    RewriteRule ^index/explore/(.*)#delete_file /_delete.php?file=$1
    RewriteRule ^index/explore/(.*) /index.php?folder=$1

    Problem ist jetzt das die eine Rule, die andere gewissermasen Überschreibt. Kann man das verhintern?

    Ich kenne mich zugegebenermaßen mit Rewriterules kaum aus, aber du kannst ja mal die beiden Rewriterules anders herum definieren.
    Oder der allgemeineren Rewrite-Rule noch per Regex oder wie auch immer ne zusätzliche Bedingung mitgeben, daß sie bei #delete_file nicht rewriten soll.

    MfG
    Götz

    --
    Losung und Lehrtext für Samstag, 13. September 2003
    Ein Mensch sieht, was vor Augen ist; der Herr aber sieht das Herz an. (1.Samuel 16,7)
    Richtet nicht nach dem, was vor Augen ist, sondern richtet gerecht. (Johannes 7,24)
    (http://www.losungen.de/heute.php3)
    1. Ich kenne mich zugegebenermaßen mit Rewriterules kaum aus, aber du kannst ja mal die beiden Rewriterules anders herum definieren.

      Ne macht leider kein unterschied.

      Oder der allgemeineren Rewrite-Rule noch per Regex oder wie auch immer ne zusätzliche Bedingung mitgeben, daß sie bei #delete_file nicht rewriten soll.

      Hab ich schon veruscht mit [^delete_file]

  2. Hallo butterbrot,

    alles kein Problem, wenn ich jetzt will, dass wenn "#delete_file" am ende steht er mich woanders hinbring.

    Geht nicht. # beginnt in einer URI den Hash-Teil, der *nicht* vom Browser zum Server übertragen wird. Wenn Du http://www.example.com/test.html?a=b#c aufrufst, dann bekommt der Server nur http://www.example.com/test.html?a=b mit. Mit einer Rewrite-Rule kannst Du folglich nichts tun. Du könntest höchstens statt # irgendein anderes Zeichen nehmen. ? wäre jedoch ungeeignet, da der Query-String *nicht* in einer Rewrite-Rule zur Verfügung steht.

    Viele Grüße,
    Christian

    1. vielen dank, habs mit = gmeacht geht jezt,
      dnake nochmals