index.php is een frontcontroller, die in principe alle requests afhandelt. Nu wil ik eigenlijk nog een extra regel bovenop de reeds bestaand. Ik heb een URL die er nu als volgt uitziet, dus met de huidige regels: mijndomein.ext/view/index/1/Test
Graag zou ik dit vertalen naar mijndomein.ext/Test.html
Ik zit er al even mee te prutsen, maar krijg alleen server fouten. Tips dus welkom!
de 3 condities zeggen zoveel als "als het een bestaande file/map" is dan ..."
Dat is geldt dan voor de eerst volgende rule.
De rule * - [L]
zegt "doe niets"
Daarna kan mijn rule, maar die had ook voor de condities mogen staan.
Tenslotte volgt de rule: herschrijf alles naar index.php.
Op zich zou mijn rule inderdaad helemaal vooraf mogen staan, maar ik vind het wel netjes om eerst af te vangen of je wel zou willen rewriten, voor je vanalles gaat matchen.
---
Write zou misschien ook nog moeten zeggen welke url dan geen effect heeft en hoe dat dan tot uitdrukking komt (foutmelding?)
Zelf gebruik ik bij niet werkende rewriterules graag de [R] om in elk geval in de browser ook te kunnen zien waarin het veranderd wordt. Geeft vaak net dat stukje inzicht om uit te vinden wat er mis is. Daarna kan het weer een [L] worden.
de 3 condities zeggen zoveel als "als het een bestaande file/map" is dan ..."
Dat bedoelde ik ook :-) Wellicht is het probleem namelijk dat view/index/1/Test nog wél bestaat en dan wordt de RewriteRule na deze drie condities genegeerd. Je hebt daarvan geen last meer als je de RewriteRule voor de eerste conditie zet.
De optie dat die url al bestond als echte file, was nog niet in me opgekomen.
Maar dat zou dan misschien uit de meldingen op het scherm zijn af te leiden.
Het project waar ik nu aan werk draait op mijn localhost. De bedoeling is om een zeer eenvoudig CMS systeem uit te werken. Niet meer dan pagina's aanmaken/bewerken, ... De benodigde code hiervoor is allemaal netjes uitgewerkt (modellen / controllers / views).
De controller die gebruik wordt voor het tonen van een pagina aan een bezoeker is ViewController. Door de structuur van de applicatie, en het htaccess bestand wordt dit dus vertaald naar http://localhost/project/view. De methode die standaard aangeroepen wordt is index. Aan die methode dient een ID en een string meegegeven te worden. Op basis van die twee gegevens zal de controller de benodigde modellen aanspreken en de views renderen.
Wanneer ik surf naar die laatste URL heeft dit jammer genoeg niet het gewenste effect. Het komt er op neer dat er een log entry naar de error log wordt geschreven: File not found: application/controller/Test.htmlController.php
M.a.w. hij probeert een controller te vinden die Test.htmlController.php noemt.
Jammer genoeg werkt het nog niet zoals verwacht, ik krijg een error 404, dus niet gevonden.
Overigens staat de '1' nu ook vast, die zou dus ook dynamisch moeten zijn. Ik weet niet of dit al dan niet mogelijk is. Wat dat betreft heb ik weinig kennis... Vandaar dat ik vast zit :-)