Sven: mod_rewrite will nicht mehr

Hiho,

<Directory "/x/y/z">
    RewriteEngine On
    RewriteBase   /z
    # Comments:    evv. prefix        /    YEAR      /  MONTH-DIGITS|MONT-WORD  /       DAY      /entry od period/ subquery(s)
    RewriteRule   ^((?:blog|news)?)(?:/?|/(\d{4})(?:/?|/(\d{1,2}|[^/]{3,10})(?:/?|/(\d{1,2})(?:/?|/(.*)(\d*)(?:/?|/(.*))))))$  "view.php?view=$1&year=$2&month=$3&day=$4&entry-type=$5&entry-num=$6&subquery=$7"
</Directory>

Das Verzeichnis /x/y entspricht dem document-root, z ist entsprechend
ein direktes Unterverzeichnis.

Müsste eigentlich ohne Probleme "matchen", auch wenns etwas
komplizierter aussieht.

http://domain/z/        => funktioniert, da ja das pattern nicht
                           "matcht"
http://domain/z/blog    => macht nicht, genauso wenig wie
http://domain/z/news       alle weiteren folgenden
http://domain/z/news/
http://domain/z/news/2005/01/27/news
http://domain/z/2004/08/25/blog2
http://domain/z/blog/2004/06/13/blog/subquery

Warum? Ich habe keine Ahnung. Bis jetzt hat das immer funktioniert,
dann habe ich zwischenzeitlich den computer plattgemacht und ein
etwas neuerer Apache läuft jetzt (Win & Linux).

mod_rewrite funktioniert in anderen Fällen wunderbar, aber hier
bekomme ich einfach nur simple 404er, auch der log hört sich so an,
als ob mod_rewrite hier verschlafen hätte.

Hat jemand eine Idee?

Gruß,

Sven

  1. Tag Sven.

    hier bekomme ich einfach nur simple 404er, auch der log hört sich so an, als ob mod_rewrite hier verschlafen hätte.

    Aha, und was genau steht in der Logdatei? Statuscode 404 deutet weniger darauf hin, dass mod_rewrite nicht will, sondern dass die Regel auf eine Art und Weise interpretiert wird, die du so offenbar nicht erwartet hast.

    Siechfred

    --
    »Sie kochten heimlich mit Wasser und tranken öffentlich Wein.«
    1. Moin Siechfred,

      hier bekomme ich einfach nur simple 404er, auch der log hört sich so an, als ob mod_rewrite hier verschlafen hätte.
      Aha, und was genau steht in der Logdatei? Statuscode 404 deutet weniger darauf hin, dass mod_rewrite nicht will, sondern dass die Regel auf eine Art und Weise interpretiert wird, die du so offenbar nicht erwartet hast.

      z.b. sowas:

      192.168.1.20 - - [28/Jan/2005:21:51:54 +0100] "GET /news/2005 HTTP/1.1" 404 3688 "http://domain/server/refer.php?prefix=%2Fnews%2F&wait=1&to=2005" "Opera/7.54 (Windows NT 5.0; U)  [de]"

      ein ganz schlichter nix aussagender 404-fehler in dem access-log.

      Der Errorlog gibt sowas aus (Windows):

      [Fri Jan 28 17:50:55 2005] [error] [client 192.168.1.20] File does not exist: E:/Homepages/webserver/news/2004, referer: http://domain/server/refer.php?prefix=%2Fnews%2F&wait=1&to=2004

      genauso wenig aussagend.

      Wie gesagt, ich habe keine Ahnung, woran es liegt :(

      Gruß,

      Sven

      1. 你好 Sven,

        leg dir mal eine RewriteLog an. Das verraet dir mehr.

        再见,
         CK

        --
        Sich erinnern bedeutet, aus einer Erfahrung nicht ausreichend gelernt zu haben.
        http://wwwtech.de/
        1. Heyho Christian,

          leg dir mal eine RewriteLog an. Das verraet dir mehr.

          hm - tolle Idee, daran habe ich noch gar nicht gedacht. Aber irgendwie
          ist das, was er mir da ausgibt, auch etwas seltsam.

          Im Grunde genommen funktioniert jetzt einiges, anderes aber nicht. Aber
          mithilfe des RewriteLogs fällt die Fehlersuche sicherlich leichter.

          thx nochmal & Grüße,

          Sven

          PS:

          你好 Sven,
          再见,
          CK

          Dient das nur zur allgemeinen Verwirrung, oder warst du neulich in China?
          ;-)

          --
          Endlich wieder angemeldet beim Forum!
          SvenK