Hey,
Ik heb een probleem met mod_rewrite. Mijn sites zijn allemaal op een modulaire manier opgebouwd. Ik heb een mapje met core files, waarin de basis scripts instaan die je vrijwel op iedere site nodig zou hebben, en een mapje modules, waarin ik, zoals de naam al zegt, modules kan wegzetten.
Als het bestand index.php wordt geladen, haalt het alle actieve modules op uit de database waar de gebruiker toegang tot heeft, en stopt de informatie in een array. Deze array ziet er ongeveer zo uit.
Als de gebruiker index.php?p=user/login bezoekt, wordt eerst gekeken of de array $m['user/login'] bestaat. Is dit zo, dan wordt de login module geladen.
Dit heb ik met mod_rewrite wat aangepast, zodat de URL er wat mooier uitziet. De gebruiker kan nu deze module bezoeken door naar domein.nl/user/login te gaan.
Dit systeem werkt goed, tenzij ik met modules werk die $_GET variabele nodig hebben. In dit soort gevallen wordt de URL meer iets van domein.nl/showpost?id=1&cat=index. Ik kan hier maar een paar dingen voor bedenken, om dit ook er mooier uit te laten zien.
Ik kan op dit moment geen andere manier bedenken om dit op te lossen, als ik er op google kom ik alleen maar tutorials tegen hoe je mod_rewrite moet gebruiken. Kan iemand mij dus een zetje in de goede richting geven?
Ik heb een probleem met mod_rewrite. Mijn sites zijn allemaal op een modulaire manier opgebouwd. Ik heb een mapje met core files, waarin de basis scripts instaan die je vrijwel op iedere site nodig zou hebben, en een mapje modules, waarin ik, zoals de naam al zegt, modules kan wegzetten.
Als het bestand index.php wordt geladen, haalt het alle actieve modules op uit de database waar de gebruiker toegang tot heeft, en stopt de informatie in een array. Deze array ziet er ongeveer zo uit.
PHP:
1
2
3
4
| $m['user/login'] = array ( 'file' => 'login.php', 'menu_item' => 'Log In', ); |
Als de gebruiker index.php?p=user/login bezoekt, wordt eerst gekeken of de array $m['user/login'] bestaat. Is dit zo, dan wordt de login module geladen.
Dit heb ik met mod_rewrite wat aangepast, zodat de URL er wat mooier uitziet. De gebruiker kan nu deze module bezoeken door naar domein.nl/user/login te gaan.
Dit systeem werkt goed, tenzij ik met modules werk die $_GET variabele nodig hebben. In dit soort gevallen wordt de URL meer iets van domein.nl/showpost?id=1&cat=index. Ik kan hier maar een paar dingen voor bedenken, om dit ook er mooier uit te laten zien.
- Voor iedere module die dit soort argumenten nodig heeft, een extra rewrite rule zetten in .htaccess
- Het path exploden op '/', kijken of de array meer dan bv. 2 waarde bevat, de eerste 2 waarden beschouwen als path, en de overige als argumenten voor de module en die doorsturen.
Ik kan op dit moment geen andere manier bedenken om dit op te lossen, als ik er op google kom ik alleen maar tutorials tegen hoe je mod_rewrite moet gebruiken. Kan iemand mij dus een zetje in de goede richting geven?