1. #1
    sarnath's Avatar
    Registered
    07/11/03
    Location
    Bree
    Posts
    6,239
    iTrader
    158 (99%)
    Mentioned
    0 Post(s)
    Reputation
    0/0

    Url rewriting - locatie bestanden

    In tegenstelling tot mijn testserver heb ik url rewriting op mijn productie wel draaien (zie andere thread)
    En nu heb ik een vrij simpele vraag over de locatie van bestanden die toch wat uitleg vereist:

    Ik heb een vraag over de verwijzing naar bestanden.
    Het zit zo, ik ben momenteel mijn website aan het compatibel maken met url rewriting.

    De structuur van mijn site is als volgt:
    css/stijl.css
    bijlagen/nieuws/afbeeldingen/afbeeldingnaam.jpg
    javascript/javascriptbestand.js
    scripts/afbeeldingscript.php
    index.php
    nieuws.php
    nieuwsbericht.php
    enz

    Een gewone url http://www.mijnsite.be/nieuwsbericht.php?id=100 zit dus op het hoogste niveau en daar roep je
    dus de afbeelding op door in nieuwsbericht.php de file bijlagen/nieuws/afbeeldingen/afbeeldingnaam.jpg op te roepen.

    Als je url-rewriting doet (dus met een url http://www.mijnsite.be/nieuws/artikel/100/ kan je dus de afbeelding niet op dezelfde manier oproepen want dan krijg je
    http://www.mijnsite.be/nieuws/artike...eldingnaam.jpg en dat bestaat niet.
    Je moet dus de afbeelding oproepen door een / te plaatsen voor bijlagen, dus /bijlagen/nieuws/afbeeldingen/afbeeldingnaam.jpg

    Volledig logisch allemaal.

    Wat ik echter wel vreemd vind is hetvolgende.
    Voor mijn cssfile moet ik dus ook een "/" ervoor zetten:
    <link rel="StyleSheet" href="/css/stijl.css" type="text/css" title="layout" />

    Anders wordt de file niet gevonden.

    Als ik mijn scriptfile include hoeft dat blijkbaar niet, dus gewoon:
    <?php include("scripts/afbeeldingscript.php") ?>
    Bovendien herkent het script mijn afbeelding ook niet als ik deze doorgeef met een "/" voor: /bijlagen/nieuws/afbeeldingen/afbeeldingnaam.jpg
    Daaraan moet ik het weer doorgeven zijnde bijlagen/nieuws/afbeeldingen/afbeeldingnaam.jpg

    bij file_exists is dit ook zo, daar mag je geen "/" ervoor zetten of hij kan de afbeelding niet vinden terwijl je m wel alleen kunt tonen met een "/" voor.

    Hoe komt dat precies?
    Last edited by sarnath; 07-01-2010 at 11:22.
    webdeveloper / gamer
    no votes  

  2. #2
    Fr3aK's Avatar
    Registered
    17/07/02
    Location
    Antwerpen
    Posts
    2,614
    iTrader
    0
    Mentioned
    0 Post(s)
    PHP wordt uitgevoerd op de server en gaat niet door .htaccess, bestanden zijn daardoor altijd relatief te linken en hoef je dus niet vanuit root ("/") te gaan linken
    no votes  

  3. #3
    Spacy2003's Avatar
    Registered
    28/05/03
    Location
    Diepenbeek
    Posts
    2,290
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    2/2
    Inderdaad php is niet gevoelig aan de rewrite omdat dit gegenereerd wordt voor de .htaccess, stylesheets, images en javascript wel. Deze zijn niet bewust dat je met de url's aan het foefelen bent. Dus die gaan lekker relatief verder denken op wat mappen die niet bestaan.

    Makkelijk op te lossen:
    Even een global declareren define("ROOTDIR", "/i-is-the-root-folder-or-whatever-base-dir");
    Dat zet je bij alle externe files die worden geladen, zoals css, javascript, images, ... <img src="<?php ROOTDIR ?>/images/image.png" alt="ladida"/>
    Volg m'n vogel op twitter.
    What about lesscoffee for the front-end guy.
    no votes  

  4. #4
    sarnath's Avatar
    Registered
    07/11/03
    Location
    Bree
    Posts
    6,239
    iTrader
    158 (99%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    ok, bedankt voor jullie antwoorden
    webdeveloper / gamer
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in