Raucherkrebs: mod rewrite

Hi Forum,

warum funktioniert das mod rewrite nicht bei mir:

RewriteEngine on
Options FollowSymLinks
RewriteBase /

RewriteRule  ^shop/?$  /pages/shop_overview.php5
RewriteRule  ^shop/mo/?$  /pages/shop_overview.php5?cat_id=2
RewriteRule  ^shop/ein/?$  /pages/shop_overview.php5?cat_id=3

Es kommt immer die Fehlermeldung, dass die Seite nicht existiert.

Win 2000
php 5.02
Apache 2.0.52

  1. Müssen auf einer mit mod rewrite umgeschreibenen Seitenlinks absolut sein?

    1. hi,

      Müssen auf einer mit mod rewrite umgeschreibenen Seitenlinks absolut sein?

      nein, müssen sie nicht.

      aber halt in bezug auf das, was der client wirklich angefordert hat, müssen sie "stimmen".

      beispiel:
      wenn du die anfrage nach
      /test/blah.html
      intern zu
      /dateien/seiten/blah.php
      umschreibst, und jetzt eine datei verlinken willst (ohne mod_rewrite), die ein verzeichnis darunter liegt, meinetwegen
      /dateien/jodel.html

      • dann kannst du aus blah.php nicht mittels
        ../jodel.html
        machen, weil der client ja /test/blah.html angefordert hat - also würde er das jetzt zu einem request nach
        /test/../jodel.html und damit
        /jodel.html
        umwandeln - und das würde vermutlich nicht gefunden werden.

      insbesondere bei eingebundenen CSS-dateien und bildern kommt man da leicht ins schleudern, wenn man sich über mod_rewrite eine "ordnerstruktur aufbaut".

      dann empfiehlt es sich ggf., alle verlinkungen relativ zum root der domain zu machen, also von / ausgehend.
      aber vorsicht, dass gibt später evtl. probleme, wenn man dann die komplette präsenz beispielsweise mal in einen unterordner verschieben will.

      gruß,
      wahsaga

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