Als ik zie wat je probeert te doen, ga dan gewoon voor een lokale static site generator. 404 opvangen in Apache/Nginx conf/htaccess en al de rest gewoon door de static site generator laten genereren. Je URLs zullen er een pak beter uitzien en ook properder geindexeerd worden door Google. Wat voor jou misschien nog een veel betere reden kan zijn: static site generators moet je geen programmeerwerk meer voor doen die dan niet werkt.
Wat jij probeert te doen heeft niets met dynamische content te maken, de content van de site is statisch. Je probeert gewoon DRY te werken en dat is goed gedacht.
En ik herhaal het nog eens: PHP heeft een aanzienlijke performance hit, op shared hosting kan dat makkelijk tot 40% verschil maken. In jouw geval kan je het gebruik van PHP op de server makkelijk vermijden, doe dat dan ook.
PHP en andere serverside talen zijn zeker nodig, in het geval waar je de eindgebruiker een makkelijke manier wil geven om content aan te passen bv. Voor includes om zo repetition in je code te vermijden is het echter één van de minst goeie oplossingen. Bovendien ga je op 48 pagina's nog altijd 48 keer die includes herhalen of ga je zoals in jouw voorbeeld 48 conditions hebben om naar de juiste partial te verwijzen. Verre van DRY dus…
Static site generators heb je in alle talen en in alle soorten, zoek diegene die jou het beste ligt en die makkelijk installeert op je computer (Ruby-based generators op Windows zijn dikwijls kut bv., pak er dan liever één in PHP). Ze bieden trouwens nog veel meer voordelen dan alleen jouw include probleem:
- Updaten van alle URLs bij het wijzigen van bestandsnamen en mappenstructuren
- Automatisch maken van sitemaps, menustructuren, table of contents, etc.
- Gebruik van preprocessors zoals SASS, Stylus, LESS
- Bundling, minifying en uglifying van Javascript
- Cache busting
- Geen nood aan caching mechanismes
- Geen kans op PHP of development bug exploits