Petra: nach Rewrite wird css Datei nicht gefunden

Hi,

ich leite eine url: example.com/foo/bar.html auf example.com/fooBar.html um

  
RewriteRule ^foo/bar.html$ fooBar.html  

Beim Aufruf von example.com/foo/bar.html wird nun zwar example.com/fooBar.html angezeigt, nicht aber die darin verlinkten css. Diese liegen unter example.com/css/c.css und werden (so im error_log zusehen) unter example.com/foo/css/c.css aufgerufen.

Wie macht man die Weiterleitung einer Seite inkl. aller Ressourcen in eine höhere Verzeichnisebene richtig?

LG
Petra

  1. Beim Aufruf von example.com/foo/bar.html wird nun zwar example.com/fooBar.html angezeigt, nicht aber die darin verlinkten css. Diese liegen unter example.com/css/c.css und werden (so im error_log zusehen) unter example.com/foo/css/c.css aufgerufen.

    An der Rewrite Rule liegts wohl nicht. Wahrscheinlich verlinkst Du die CSS file im html dokument _relativ_.

    <link rel="stylesheet" type="text/css" href="./css/c.css"/> oder
    <link rel="stylesheet" type="text/css" href="css/c.css"/>

    statt absolut:

      
    <link rel="stylesheet" type="text/css" href="/css/c.css" title="SELFHTML Forum Stylesheet" />
    

    Gib mal example.com/css/c.css als url ein. Was kommt da?

    Cheers,
    Baba

    1. Wahrscheinlich verlinkst Du die CSS file im html dokument _relativ_.

      Ja, das war es. Danke.

  2. @@Petra:

    nuqneH

    ich leite eine url: example.com/foo/bar.html auf example.com/fooBar.html um

    lang=html? Für die Auszeichnung als Apache-Code gibt es eine entsprechende Angabe – samt Button über dem Eingabefeld.

    [code lang=apache]
    RewriteRule ^foo/bar.html$ fooBar.html

      
    [When not to use mod_rewrite](http://httpd.apache.org/docs/2.4/rewrite/avoid.html)  
      
    `Redirect`{:.language-apache} sollte es in deinem Fall tun.  
      
    Qapla'
    
    -- 
    „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)