Bekijk deze pagina in het Engels - vanaf daar zijn ook andere talen te vinden.

Pretty URLs

laatst bijgewerkt op 16-04-2011 voor versie 1.9.4
Gebruik je CMSMS versie 1.6 of ouder? Gebruik dan de methode die onderaan staat. Maar beter is direct te UPGRADEN!!
Aangenomen dat je voldoende kennis hebt over het web, URLs en herschrijven van URLs (zie de vereisten) kan je zgn. pretty URLs op je site gebruiken. Wanneer je hiervoor kiest zie je in de adresbalk niet langer een adres als ''http://www.jewebsite.nl/index.php?page=tinymce'' maar ''http://www.jewebsite.nl/default-extensions/modules/tinymce''.
Dit is voor de bezoeker prettiger: het leest eigenlijk als de broodkruimels (breadcrumbs) die je in je site kunt plaatsen, en zoekmachines kunnen er ook beter mee uit de voeten.
Om dit voor elkaar te krijgen moet je het .htaccess bestand aanpassen en moet je een of meer instellingen in je config.php wijzigen.

.htaccess

Pas het bestand .htaccess aan (of maak het aan, als je het nog niet hebt) en plaats het op het hoogste niveau in je CMSMS-map.
De aanpassing die je moet maken is het toevoegen van een rewrite rule. Die kan je rechtstreeks uit het htaccess.txt bestand halen (in de /doc map van CMSMS):
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
# Rewrites urls in the form of /parent/child/
# but only rewrites if the requested URL is not a file or directory
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
</IfModule>
NB1
Je kunt in feite het hele htaccess.txt bestand in je .htaccess plaatsen, omdat alle andere regels uitgeschakeld zijn.
NB2
Wanneer je je CMSMS niet in de root van je website hebt staan, maar in een submap (www.mijndomein.nl/mijncmsms), dan moet je de volgende regel aanpassen:
RewriteBase /
wordt
RewriteBase /mijncmsms

config.php

Pas config.php aan (zorg dat je de juiste versie hebt! load hem down van je webserver):
$config['url_rewriting'] = 'mod_rewrite';
Stel eventueel de volgende variabele in (deze zet de extensie .html aan het eind van de URL, zodat je pagina statisch lijkt te zijn):
$config['page_extension'] = '.html';

In oudere versies van CMSMS kan je nog de variabele $config['use_hierarchy'] tegenkomen. Staat die inderdaad in je config.php-bestand, controleer dan dat die op 'true' staat, zodat je het hele broodkruimelpad te zien krijgt (standaard instelling vanaf 1.7):

$config['use_hierarchy'] = true; // dit is de standaard vanaf 1.7
Overigens is het dan wel tijd voor een upgrade!



methode van voor versie 1.6
LET OP: ONDERSTAANDE GELDT ALLEEN VOOR EERDERE VERSIES DAN 1.6
GEBRUIK ONDERSTAANDE UITSLUITEND VOOR OUDE VERSIES VAN CMSMS
TROUWENS: HET IS TIJD OM UP TE GRADEN
CMSMS heeft twee manieren om pretty URLs te hanteren; zijn eigen, interne mechanisme en mod_rewrite.
URLs uitgevoerd met het interne mechanisme zien er als volgt uit: http://www.example.com/index.php/parent/child
URLs uitgevoerd via mod_rewrite zien eruit als: http://www.example.com/parent/child
Het interne mechanisme wordt volledig binnen PHP afgehandeld en heeft mod_rewrite in Apache niet nodig. Echter, het werkt niet op IIS, en als je het al inschakelt, dan moet je er zeker van zijn dat het sjabloon het {metadata} label bevat. Om het in te schakelen, zet je deze optie op true:
$config['internal_pretty_urls'] = true;
Als je mod_rewrite wilt gebruiken om URL's te verwerken, dan schakel je dit in:
$config['assume_mod_rewrite'] = true;
Als je mod_rewrite gebruikt, dan heb je ook een .htaccess bestand nodig voor zijn regels. Je vind een geschikte versie in /docs/htaccess.txt - kopieer het naar /.htaccess om het te gebruiken. Let op dat om .htaccess bestanden te kunnen gebruiken, de Apache-serverconfiguratie een 'AllowOverride All' directive moet hebben of erven.
Met mod_rewrite is er verder een optie:
$config['page_extension'] = ;
Alles wat je hier in zet wordt toegevoegd aan de gegenereerde URL's, maar heeft geen effect op hun werking. Het is zinvol om pagina's te laten lijken op statische inhoud, wat sommige zoekmachines kan helpen. Bijvoorbeeld, door het op '.html' in te stellen kan een doorsnee URL er als volgt uitzien:
http://www.example.com/parent/child.html
Je kan pagina-urls hun plaats in de hiƫrarchie laten weergeven door het gebruik van de 'use_hierarchy' optie:
$config['use_hierarchy'] = true;
Met deze optie uitgeschakelt, zou http://www.example.com/parent/child worden geschreven als http://www.example.com/child.



Bijdragen aan de Nederlandse wiki? Check dan eerst het forum-topic WIKI - wat doen we daarmee?

User Handbook/Installation/Optional Settings/Pretty URLs/nl

From CMSMS

A2 Hosting