Waarom spaties in je bestandsnaam uit den boze zijn

Waarom spaties in je bestandsnaam uit den boze zijn

Gastblog door Kim Pittoors van Nethit

Ik zie nog te vaak websites waarop afbeeldingen staan waarvan de bestandsnaam een spatie of zelfs meerdere spaties bevat. Gebruik jij op je site ook wel eens afbeeldingen met spaties in de bestandsnaam? Dat kan je eigenlijk beter niet doen. Ik leg je graag uit waarom.

Afbeeldingen die je op je website plaatst hebben ook een URL

Elke pagina en elk bestand op het internet heeft een uniek webadres, dit webadres noemt men in vakjargon een URL. Het woord URL is een afkorting van de term Uniform Resource Locator. Afbeeldingen die je op je website plaatst hebben ook een URL en zijn dus onderworpen aan exact dezelfde regels als de URL’s van de pagina’s op je website.

De URL van de uitgelichte afbeelding bij dit artikel

Toen Tim Berners Lee in december 1994 een memo maakte waarin hij de internet standaarden voor URL’s beschreef, was hij heel duidelijk over dit onderwerp:

“The space character is unsafe because significant spaces may disappear and insignificant spaces may be introduced when URLs are transcribed or typeset or subjected to the treatment of word-processing programs.”

Bron: http://www.ietf.org/rfc/rfc1738.txt

Deze regel is dus al bijna even oud als het internet zelf. De voornaamste historische reden om geen spaties te gebruiken is het feit dat elk systeem (besturingssysteem, browser, programma, CMS, programmeertaal enz.) op een andere manier met spaties omgaat.

Spatiegebruik in Windows

Voor Windows systemen zijn spaties normaal geen probleem, maar tóch kan ook spatiegebruik op een Windows server problemen opleveren.

Spatiegebruik op Unix klonen

Besturingssystemen als Linux en iOS zijn UNIX clonen en hanteren andere regels dan Windows. Deze zijn gebaseerd op het alleroudste besturingssysteem dat er bestaat, genaamd UNIX.

Ten eerste zijn deze systemen hoofdlettergevoelig en ten tweede dienen spaties er op een bepaalde manier behandeld te worden om geen problemen te veroorzaken. Doet men dat niet, dan kan spatiegebruik dus allerlei problemen opleveren. Die problemen zijn gelukkig wel oplosbaar door iets in de code te wijzigen van het systeem waarin het probleem zich voordoet. Hoe dit exact werkt bij besturingssystemen of in computerprogramma’s kan ik je helaas niet uitleggen, dat is niet mijn vakgebied.

Maar het gaat nu even over websites en veruit de meest websites zijn gemaakt in de scripting-taal PHP. En daar kan ik je wel wat over vertellen.

Spatiegebruik in de code van PHP websites zoals Wordpress, Joomla en Drupal

In PHP – één van de meest gebruikte scripting-talen om sites mee te bouwen – heb je bijvoorbeeld de functie URLencode tot je beschikking om problemen met spaties te vermijden. Zo maak je je systeem fout-tolerant en dat is natuurlijk een goede zaak. Maar dat neemt niet weg dat je dus technisch gesproken een fout maakt door URL’s met spaties erin te gebruiken.

Spaties gebruiken in je URL’s is eigenlijk verkeerd

Je mag in URL’s eigenlijk helemaal geen spaties gebruiken en ook speciale leestekens zijn uit den boze. Als je zeker wilt zijn dat je het goed doet, dan gebruik je enkel de letters a tot z, de cijfers 0 tot 9 en het koppelteken (-) om spatie’s mee te vervangen in URL’s. Underscores gebruik je trouwens beter niet als een vervanging van de spatie volgens Google.

Maak het jezelf gemakkelijk en gebruik geen hoofdletters in je URL’s

Om verwarring te voorkomen raad ik je eveneens aan om gewoon géén hoofdletters te gebruiken in je URL’s. Vooral niet als je website zich op een Windows server bevindt. Als je toch hoofdletters gebruikt moet je opletten dat je de correcte schrijfwijze hanteert in de code van je site. Want als je ooit gaat verhuizen naar een Linux Server en die schrijfwijze klopt niet, dan vindt die Linux server je afbeeldingen en bestanden niet terug.

Levert spatiegebruik vandaag de dag nog problemen op dan?

Je zou denken dat de meeste grote bedrijven hun systemen al lang fout-tolerant gemaakt hebben wat betreft dit soort pietluttige zaken. Maar soms is dat ook niet zo. Het is bijvoorbeeld al een tijdje bekend dat spatiegebruik in de code van email-templates problemen kan opleveren in Gmail.

Gmail vervangt de spaties in de code door plustekens, in plaats van ze de ‘encoderen’ zoals men zou verwachten. En daardoor kunnen afbeeldingen onvindbaar worden waardoor je boodschap deels verloren gaat. Of erger nog; de kortingsbon die je verstuurde is simpelweg niet zichtbaar voor de ontvanger.

Moet je je nu schamen voor je gewetenloze spatiegebruik? Nee, het kan de besten gebeuren. Zelfs bij Google zijn er blijkbaar werknemers die lak hebben aan Tim Berners Lee en zijn regels, zo leert een blik in de broncode van een aankondiging op de Google Webmaster Central Blog.

Niet doen dus

Het is dus echt beter om geen spaties te gebruiken. Ik denk dat elke programmeur en websitemaker ter wereld dat zal beamen. Het feit dat veel systemen fout-tolerant zijn wil niet zeggen dat het gebruiken van spaties een goed idee is. Technisch gesproken is het gewoon fout en het kan ook vandaag de dag nog problemen opleveren zoals je hebt kunnen lezen.

Gebruik koppeltekens in je bestandsnamen, zodat alle woorden wel apart van elkaar worden gezien door een zoekmachine. Domeinnamen bevatten bij voorkeur zo weinig mogelijk koppeltekens, maar in de slug of permalink (het gedeelte van de URL achter de domeinnaam) ziet Google wel graag de woorden apart van elkaar.

Hield jij je hier al aan of kwam je hier al eens mee in de problemen? Deel je ervaringen en oplossingen, zo leert een ander er ook van. Uiteraard kun je hieronder ook je vragen kwijt.

 

Website | + berichten

Websitemaker & SEO-specialist. Vlaming, maar woont in Haarlem. Weet veel van WordPress en is vooral technisch goed onderlegd. Snelle websites dus, die goed gevonden worden in de zoekmachines.

0 antwoorden

Plaats een Reactie

Meepraten?
Draag gerust bij!

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.