Archief - Url rewriting - locatie bestanden

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

sarnath

Legacy Member
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/artikel/100/bijlagen/nieuws/afbeeldingen/afbeeldingnaam.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?

Fr3aK

Legacy Member
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 ;)

Spacy2003

Legacy Member
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"/>
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan