Ik ben bijna klaar met het maken van een website in php. Deze wordt op mijn lokale testserver benaderd via "sitenaam.php". Alleen is mijn domeinnaam "sitenaam.nl". Hoe zorg ik ervoor dat mijn site straks als hij live staat benadert kan worden via "sitenaam.nl"?
Ik moet de naam van de opvangpagina (homepagina) in mijn sitemap dus veranderen in "index.php" en als mijn site dan live staat dan wordt bij invoering van www.mijnsite.nl deze index.php-pagina getoond.
Maar nu heb ik behalve de homepagina nog verschillende andere pagina's in mijn map staan (anders wordt de homepagina nogal groot en langzaam) die ook benaderbaar moeten zijn. Hoe moet ik daar intern naar door verwijzen (met <a href=... ) en waar (in welke map) moet ik deze bestanden zetten?
Ook lokaal werkt dit hetzelfde. Dus als je in de standaard website-map (vaak /htdocs, /www/public_html) een index bestand plaatst, dan wordt deze ook geopend via http://localhost/.
Bestanden binnen deze map kan je gewoon oproepen met <a href="bestand.php">klik hier</a>. of een mapje hoger: <a href="contact/routebeschrijving.php">klik hier</a>.
Maar een mapje lager kan ook, er vanuit gaande dat je bijv. in de directory /contact zit) <a href="../bestand.php">klik hier</a>. Maar combineren kan ook, door een mapje terug te gaan, en een andere te openen: <a href="../teamleden/pieter.php">klik hier</a>
Of als je direct een relatief pad wil hebben vanaf het begin, waar je je ook bevindt qua publieke locatie, dan gebruik je een slash als eerste: <a href="/bestand.php">klik hier</a>
Ik moet de naam van de opvangpagina (homepagina) in mijn sitemap dus veranderen in "index.php" en als mijn site dan live staat dan wordt bij invoering van www.mijnsite.nl deze index.php-pagina getoond.
Correct.
Op je server is een apart mapje waarin je die index.php zet. Dat mapje heet meestal iets van 'httpdocs'. Alles wat je via de URL invoert, komt in dat mapje uit.
Als jij dus in die map een bestand 'test.php' zet, dan kun je dat bestand via de browser als volgt aanroepen: www.mijnsite.nl/test.php
Ik heb om mijn lokale server een mapje "xampp > htdocs". In dit mapje heb ik een map voor mijn site gezet (te noemen "sitemap"). Dat is dus niet goed? Ik moet dus deze map "sitemap" verwijderen en de content uit deze map direct in het mapje "xampp > htdocs" zetten (inclusief submappen)?
Verder:
Dus bij gebruik URL "www.mijnsite.nl" wordt de "index.php" pagina uit mapje "xampp > htdocs" geladen.
Stel ik noem mijn registreerpagina "registeer.php" en zet deze in de map "xampp > htdocs". Dan wordt deze pagina als de site live staat "direct" geladen bij gebruik van URL "www.mijnsite.nl/registreer.php" ?
Nog een vraag:
Ik geef bij verschillende pagina's ook variabelen in de URL mee. Bijvoorbeeld bij de userpagina. Dus stel ik noem de userpagina "user.php" en zet deze in de map "xampp > htdocs". Kan ik dan ook gewoon variabelen in de URL meenemen als volgt: "www.mijnsite.nl/user.php?userID=1" ???
Bij XAMPP is de algemene map die voor http://localhost wordt gebruikt inderdaad htdocs. Op andere platformen kan dit verschillen.
Opsich is het niet aan te raden om binnen je websiteruimte een aparte map aan te maken voor per website.
Ikzelf heb ook eigen lokale domeinen gemaakt per site. (yaddah.dev, foo.dev, baz.dev). In de X:\xampp\apache\conf\extra\httpd-vhosts.conf heb ik per domein een virtual-host aangemaakt met de locatie waar de site staat:
Natuurlijk moet je ook even die lokale domeinen in Windows, of hetoperating-system die je maar gebruikt, even bekend maken. Dit kan in de host-file, waarheen ik al gelinkt had.
Mooi. Ik was al bang dat ik alle pagina's samen moest gaan voegen in de index.php pagina.
Dus samenvattend:
- een index.php maken voor opvang.
- <a href=..> locaties aanpassen (geen absolute paden meer).
- Het geheel uit mapje "sitemap" zetten in mapje "htdocs" en mapje "sitemap" verwijderen.
- Bij livegang alles uit mapje "htdocs" kopieren naar de server en gaan met die banaan...
Klopt?
Nog 1 vraag: als ik dit allemaal doe, hoe benader ik dan op mijn thuisserver de verschillende pagina's?
Live is het dan "www.mijnsite.nl" en "www.mijnsite.nl/user.php?userID=1".
Op mijn lokale testserver moet ik deze dan benaderen via "localhost/index.php" en "localhost/user.php?userID=1"?
En bij verwijzen dan?
Voor userpagina kan ik zowel lokaal als publiek verwijzen naar <a href="user.php?userID=1">klik hier</a>.
Je zou denken dat dan bij de homepagina je zowel lokaal als publiek kunt verwijzen naar <a href="index.php">klik hier</a>. Als dat niet werkt hoe moet je dan lokaal en publiek verwijzen naar de homepagina? Door <a href="">klik hier</a> ???