Hi,

Ik programmeer zelf geen php maar ik schrijf mijn websites wel in php bestanden.
Ik doe dat omdat dat enkele voordelen heeft zoals het gebruik maken van includes.

Echter ben ik er net achter gekomen dat als ik de absolute url van een subpagina in de adresbalk invoer met een slash erachter dat alle link bestanden zoals css en javascript bestanden niet aan de pagina worden gekoppeld.
voorbeeld: https://domeinnaam.com/subpagina.php/
Alle javascript bestanden werken dus niet en de pagina wordt alleen in html vorm weergegeven. De css stijlen zijn dus ook niet zichtbaar op de pagina.

Zijn er meer mensen met dit probleem en is het op te lossen?
Ja, maar dat staat dan dus verder los van hoe een browser na afloop een URL oppoetst (of dit probeert te doen) :).

Ook zou er een soort van eenduidige controle moeten zijn of een aanroep juist of onjuist is, en in het laatste geval zou je eigenlijk gewoon een 404 pagina moeten serveren.

Het betreft hier een pagina die wel weergegeven wordt alleen zonder werkende css en javascript. 404 is hier niet van toepassing.
Ik heb hieronder 2 links geplaats om duidelijk te maken wat ik precies bedoel:

https://background-tiles.com/overview/patterns.php
https://background-tiles.com/overview/patterns.php/


Gebruik je een base-tag?
Mark Coenie op 15/03/2019 20:14:16
https://background-tiles.com/overview/patterns.php/

Mja, maar "patterns.php" is geen directory. Oftewel, deze pagina bestaat niet.

Maar nogmaals, wie roept die pagina zo aan? Alleen jij zelf? Is dit een wijder verbreid probleem? Ik zou eerlijk gezegd geen moeite doen om proberen recht te buigen wat krom is, noch te "second guessen" welke pagina iemand dan wel zou willen zien.

Een URL klopt, of deze klopt niet. En zoals aangegeven kun je het serveren van CSS- JavaScript- en andere bestanden in goede banen leiden door absolute URL's te gebruiken. Een base-tag kan ook een oplossing zijn als je overal relatieve verwijzingen gebruikt.

Maar nogmaals, wie roept die pagina zo aan? Alleen jij zelf? Is dit een wijder verbreid probleem? Ik zou eerlijk gezegd geen moeite doen om proberen recht te buigen wat krom is, noch te "second guessen" welke pagina iemand dan wel zou willen zien.


Het geeft problemen in google/ search console/ dekking.
pagina's worden uitgesloten. En alle pagina's die zijn uitgesloten staat die slash erachter.

[size=xsmall]Toevoeging op 15/03/2019 22:57:30:[/size]


Gebruik je een base-tag?

Nee ik gebruik geen base-tag. Hier heb ik ook geen ervaring mee.
Dan heb je in ieder geval een basis voor alle relatieve URL's.
Mark Coenie op 15/03/2019 22:52:32
Het geeft problemen in google/ search console/ dekking. pagina's worden uitgesloten. En alle pagina's die zijn uitgesloten staat die slash erachter.

Reden te meer om niet-bestaande pagina's een 404 status te geven? Daarmee markeer je dat soort pagina's ook echt als niet-bestaand. Dit lijkt mij de enige manier om dit probleem de wereld uit te helpen want iedereen kan op elk moment besluiten om een of andere onzinpagina aan te roepen.
In elk geval zou je de javascript bestanden kunnen laden met een absolute url in plaats van een relative url

Google helpt je vast wel om het verschil tussen die twee uit te leggen ;-)


[sub]Het beste zou je zgn "root relative paths" kunnen gebruiken. Die beginnen met een slash. De domeinnaam en het protocol (http of https) is dan relatief. Een voorbeeldje: /javascript/jquery.js "root relative paths" beginnen altijd met een slash.[/sub]

Dan heb je in ieder geval een basis voor alle relatieve URL's.

Ik heb wel al gegoogeld maar het is me niet helemaal duidelijk hoe ik een base-tag moet gebruiken.
Moet ik in elke folder een basis pagina aanmaken en dan alle in alle pagina's in die folder een base-tag plaatsen naar die basispagina?
Ik heb geen idee hoe jouw site is gebouwd, en of je een raamwerk hebt met includes, zodat je niet op elke pagina je hele HTML-document staat op te bouwen.

Maar in mijn geval staat er in de base-tag op mijn hele site dit:

<base href="http://www.website.nl/layout/">

Waarbij in de map /layout dus alle afbeeldingen,javascripts en stijlen staan (verdeeld in verschillende mappen)

Maar je kan er ook voor kiezen om alle statische onderdelen van je site via een aparte domein of CDN te laten sluizen. Dat scheelt weer wat snelheid in de HTTP-requests. Grotere sites doen zoals Facebook, Tweakers, Twitter etc doen dat ook, bekijk als voorbeeld maar de URL waar ze hun plaatjes vandaan serveren. Ook heeft dit als voordeel dat ze voor de statische content een lichtere webserver kunnen gebruiken.

Reageren