Hoe sluit je een subfolder uit voor rewrite rules

Dikwijls krijg je bij je standaard web hosting account een fotogalerij gerealiseerd met 'iloapp'. Deze iloapp maakt dynamisch een fotogallerij voor alle foto's die je oplaadt op een subfolder van je website. Op zich een zeer interessant product (lightbox, mobile en non-mobile versie), maar iloapp werkt natuurlijk niet meer zodra je rewrite rules aktiveert.

Hoe zorg je er dus voor dat de rewrite rules niet worden toegepast voor je iloapp gallerij, maar wel voor de rest van de site?

In dit voorbeeld neem ik aan dat de website gerealiseerd werd met CakePHP. Dezelfde principes kunnen natuurlijk toegepast worden voor ander CMS tools of frameworks (bv WolfCMS, Zend Framework, ...).

In de standaard CakePHP download zitten 3 .htaccess files, respectievelijk in de root, app en app/webroot folders. Enkel het bestand in de root locatie dient aangepast te worden. Het oorspronkelijke bestand ziet er uit als volgt:


   RewriteEngine on
   RewriteRule ^$ app/webroot/    [L]
   RewriteRule (.*) app/webroot/$1 [L]

Pas dit aan als volgt:


   RewriteEngine on
   RewriteRule ^beeldmateriaal($|/) - [L]
   RewriteRule ^$ app/webroot/    [L]
   RewriteRule (.*) app/webroot/$1 [L]

Bovenstaande extra RewriteRule kan opgebroken worden in volgende stappen:

  • ^beeldmateriaal: begint de url (na www.mijnsite.be/) met 'beeldmateriaal'?
  • ($|/): eindigt optioneel in '/'
  • -: maak geen aanpassingen aan de url
  • [L]: (last optie) indien deze rule toegepast werd, stop met processing. Hiermee voorkom je dus dat de resterende RewriteRules toegepast worden

Bij een van mijn klanten bij one.com (web hosting met iloapp als fotogallerij) is dit 'beeldmateriaal', dit kan natuurlijk anders zijn.

Gepubliceerd door Kris Lamote op 5 jan 2011
tags: .htaccess, CakePHP

0 CommentarenVoeg Toe

Please insert the result of the arithmetical operation from the following image:

Please insert the result of the arithmetical operation from this image. =