Joomla: meertalige 404-pagina maken
Joomla heeft in de basis geen 404 pagina die makkelijk aangemaakt danwel aangepast kan worden. Laat staan het maken van een meertalige 404 pagina. Hoog tijd dat we onze eigen "best-practice" hierin delen. Ondanks dat er genoeg artikelen op internet te vinden zijn omtrent het maken van een enkele 404 pagina geven we voor de volledigheid een kort stappenplan.
Maken van een enkeltalige 404-pagina
Stap 1: maak een 404 artikel
- Titel: kies een titel, bijvoorbeeld "404" of "404 Error Page"
- Alias: hou het simpel (404) of laat Joomla dit zelf genereren
- Category: kies hier "Uncategorized" (kan ook een zelf aangemaakt categorie zijn
- Artikel inhoud: eigenlijk het belangrijkste onderdeel van een goede 404 pagina. Zorg ervoor dat het voor bezoekers duidelijk is wat er aan de hand is, de mogelijke oorzaken, maar bovenal welke oplossingen je kunt bieden.
So far so good! Tijd voor een belangrijke Metadata aanpassing!
Stap 2: voorkomen indexatie 404 pagina
- Joomla 3.X > onder het tabblad "Publishing"
- Joomla 2.5 > rechterkant van de pagina onder "Metadata Options"
Selecteer bij de optie "Robots" > "No index, no follow" (zie onderstaande afbeelding)

Stap 3: aanmaken van een verborgen menu item
Het aanmaken van het menu zelf nemen we voor kennis aan
- Maak een nieuw menu item aan voor een "Single Article"
- Selecteer vervolgens de zojuist aangemaakt 404 pagina
- Vul desgewenst de alias van het menu item in
- Zorg ervoor dat de status "Unpublished" is
- Sla het menu item vervolgens op
Stap 4: Kopieer de menu item link

Stap 5: Aanpassen van het "error.php" bestand
Allereerst is het belangrijk het error.php bestand te localiseren en ervoor te zorgen dat we deze kunnen bewerken. Normaal gesproken kun je het bestand vinden in het template dat je voor je Joomla website gebruikt. Controleer de mappen "templates/TEMPLATE_NAAM/..." en "templates/TEMPLATE_NAAM/system" op het bestaan van een error.php bestand. Niet gevonden? Geen probleem. Open een nieuw PHP bestand en plaats als eerst de volgende code:
1 2 3 4 | <?php // no direct access defined( '_JEXEC' ) or die ( 'Restricted access' ); |
Voor zowel nieuwe als bestaande error.php bestanden plaats je vervolgens onderstaande code onder de "Restricted acces" regel (zie regel 4). Sla het bestand vervolgens op als error.php in je template root map.
5 6 7 8 9 | if (( $this ->error->getCode()) == '404' ) { header( 'Location: /index.php?option=com_content&view=article&id=25' ); exit ; } ?> |
Achter "Location" plaats je de link die je eerder gekopieerd hebt.
Stap 6: Test je 404 pagina!
Open je website en navigeer naar bijvoorbeeld jewebsite.com/werktniet
Maken van een meertalige 404-pagina
Laten we als voorbeeld een Nederlands/Engelse website nemen. We kunnen simpelweg gebruik maken van het eerdere stappenplan alleen doen we alles in tweevoud. Waar nodig geven we meer informatie anders kun je referreren aan de desbetreffende stap in het eerste deel van dit artikel.
Stap 1: Maak 404 artikelen aan in NL en EN
Aanmaken werkt hetzelfde als voor een enkeltalige pagina echter dien je voor het elke pagina de juiste taal te selecteren
Stap 2: Voorkomen van indexatie beide pagina's
Stap 3: Aanmaken verborgen menu items
Let er ook hierbij op dat beide menu items aan de juiste taal worden toegewezen
Stap 4: Genereer en kopieer beide menu links
Stap 5: Aanpassen van het error.php bestand
In principe werkt dit hetzelfde als voor een enkeltalige website echter moeten we achterhalen welke taal er op dat moment actief is en er vervolgens een verwijzing naar de juist 404 pagina van maken. Dit doen we met de volgende code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <? php // no direct access defined('_JEXEC') or die ('Restricted access'); $ lang = JFactory ::getLanguage(); $result = $lang->getTag(); if ((($this->error->getCode()) == '404') && ($result == 'nl-NL')) { header('Location: /index.php?option=com_content&view=article&id=25'); exit; } elseif ((($this->error->getCode()) == '404') && ($result == 'en-GB')) { header('Location: /index.php?option=com_content&view=article&id=28'); exit; } ?> |
Stap 6: Testen van je meertalige error.php bestand
Controleer voor beide talen of deze de juiste 404 pagina ophalen. Succes? Gefeliciteerd!