Een HTML bestand als een PHP bestand laten parsen
In dit artikel ga ik uitleggen hoe je een .htm(l) bestand kunt laten parsen als een .php bestand. Je kan je natuurlijk afvragen waarom je dit überhaupt ooit zou willen doen. Daarom eerst een stukje vooraf.
Onlangs heb ik deze oplossing gebruikt bij een site die ik beheer en die ik een paar jaar geleden opgebouwd heb in HTML-pagina's. De site was qua opbouw erg verouderd met nogal wat fouten in de markup en had structurele problemen, zoals het gebruik van tabellen voor het maken van de layout van de website. Een tabel is daar namelijk niet bedoeld. Een tabel moet je gebruiken om informatie in onder te brengen en te ordenen, niet als middel om een webpagina structuur te geven.
Naast de fouten en slordigheden werd het updaten van de site steeds omslachtiger, omdat bij het toevoegen van één nieuw menu-item aan de site alle pagina's moesten worden veranderd.
Ik vond het daarom tijd om een geheel vernieuwde versie van de site te maken. Ik had meer ervaring opgedaan de laatste jaren en wist dat ik nu een betere site kon maken. Een site die zou voldoen aan de webstandaarden, die hierdoor lichtere pagina's zou hebben en dus sneller zou laden en daarbij een site die veel makkelijker te updaten zou zijn door het gebruik van PHP-includes. Met includes kon bijvoorbeeld het menu van de hele site aangepast worden door één bestand te veranderen en te uploaden in plaats van alle pagina's.
Toen ontstond er een probleem. Ik wilde PHP gaan gebruiken, maar alle pagina's van de site stonden in de zoekmachines als .html bestanden en ook andere sites linkten naar deze bestanden. Als ik nu .php extensies ging gebruiken voor de bestanden dan zouden alle URL's in de zoekmachine en op de andere sites dode links gaan opleveren. De site verkocht producten op het web en de links moesten daarom intact blijven om geen klanten te verliezen.
Aanvankelijk wilde ik dit oplossen door een redirect te gebruiken. Als er naar een .html bestand gevraagd zou worden dan zou de server automatisch redirecten naar de .php versie. Ik wilde deze oplossing ook gaan gebruiken tot ik bij mijn zoektocht een nog beter alternatief tegenkwam. Als ik de .html bestanden nou kon laten lezen als .php bestanden door de server? In dat geval zou ik niet hoeven te redirecten en zou ik zelfs de extensies van alle bestanden op de site niet hoeven te veranderen. Toch zou ik op deze manier gebruik kunnen maken van PHP. Voor mij bleek dit uiteindelijk de ideale oplossing voor de site.
De oplossing met .htaccess
Het laten parsen als .php bestand van een .html pagina doe je met een .htaccess code. Dit is de code die ik heb gebruikt:
AddType application/x-httpd-php .php .htm .html
Deze code moet je dus toevoegen aan het .htaccess bestand van je site. Als je nog nooit van een .htaccess bestand hebt gehoord dan kan je het beste even een eerder artikel lezen (onder het kopje "Het .htaccess Bestand Maken").
De bovenstaande code geeft de Apache webserver de instructie om naast bestanden met de .php extensie ook .htm en .html bestanden te laten parsen door de PHP parser op de server.
Om te controleren of het heeft gewerkt kun je een simpel HTML bestand aanmaken met daarin een eenvoudige PHP opdracht:
<html>
<head>
<title>Php test</title>
</head>
<body>
<?php
echo 'Hallo, dit is een test.';
?>
</body>
</html>
Dit bestand moet je dan even opslaan en uploaden naar de server en hem tenslotte openen in je browser. Als het goed is komt er nu "Hallo, dit is een test." op het scherm te staan. Gebeurt dit niet dan wordt je .html pagina nog niet geparsed door de PHP parser. Dit komt waarschijnlijk doordat je webhost geen .htaccess ondersteunt of omdat je host dit voor jouw account (nog) niet heeft ingeschakeld. Dit laatste was bij mij aanvankelijk ook het geval. Na een e-mailtje mocht ik gewoon .htaccess gebruiken en werkte het wel. Vraag dit dus even na bij je host mocht bovenstaande code niet werken.
Toen het bij mij werkte kon ik alle oude .html bestanden aanpassen naar de nieuwe versie van de site. Hierin verwerkte ik ook PHP-includes, zodat het updaten van menu's en dergelijke in het vervolg veel eenvoudiger werd. De site is nu een stuk beter geworden, qua opbouw, markup en laadsnelheid. De .htaccess oplossing heeft ervoor gezorgd dat de omschakeling minder tijd heeft gekost en dat er geen klanten verloren zijn gegaan.
Samenvattend
De .htaccess code kan erg handig zijn bij een overstap van .html naar .php bestanden op een website. Het voorkomt dat je een hoop extensies moet aanpassen en je hoeft bezoekers niet te redirecten van de HTML bestanden naar de PHP bestanden. Zoekmachinelinks en links vanaf andere sites blijven intact en je verliest dus geen bezoekers. Al met al was het voor de site waar ik aan werkte de beste oplossing. Hopelijk kan het ook jullie eens van pas komen.
Homepage-Maken Tip
De makkelijkste manier om je eigen website te maken?
Dat is via een website bouwer als Weebly. Hiermee kun je eenvoudig via je browser door middel van drag-en-drop een website bouwen. Je kunt volledig gratis beginnen met 500MB webruimte voor je site. Zo nodig kun je een betaald pakket nemen met eigen domeinnaam, "onbeperkte" opslag (fair use policy) en e-commerce mogelijkheden.
Weebly is daarom een prima optie als je snel een website in elkaar wilt zetten. Kennis van HTML of het installeren van een eigen content management systeem is niet nodig bij Weebly.