von subjective |
Der Browser sieht nur http://domain.tld/about bzw. http://domain.tld/all/about. Die Rewrite-Rule schreibt das innerhalb des Webservers um ohne das der Webbrowser davon was mitbekommt. Damit hat der Browser also die Pfadinformation und nutzt sie natürlich auch bei Bildern und Links.
Eine Lösung wäre, die URLs der Bilder/CSS/... immer vom Document-Root aus anzugeben - also /pfad/bild.jpg. Damit würde der Browser die Pfadinformation verwerfen. |
von Mostone |
Hallo,
Regel 1: RewriteRule ^about index.php?about
Regel 2: RewriteRule ^all/about index.php?about
Regel 1 funktioniert wie gewünscht. Bei Regel 2 wird nach dem Rewriting in der Seite als Basisverzeichnis 'all' angenommen, so dass dort referenzierte Stylesheets, Bilder, ... natürlich nicht gefunden werden, ausser ich referenziere wie folgt: '../mycss.css'
Nun will ich das nicht, da alle Seiten bei mir das gleiche Basisverzeichnis haben und Änderungen sehr umständlich wären.
Ich will also verhindern dass ich bei http://localhost/all/about dieses 'all' als Verzeichnis genommen wird nicht als Verzeichnis interpretiert wird, da ich dieses nicht habe und nur
der Darstellung so aufgeteilt wurde.
In der Dokumentation zum Apache Module mod_rewrite ist dazu eine Bemerkung,
aber man muss das noch abändern können. Ich benutze die Regeln per-directory
also in .htaccess.
|
|