Door
Aapje yeah
op 17-02-2012 14:17
gewijzigd op 17-02-2012 14:18
1.735 views
Hallo mensen,
Ik ben bezig om voor mezelf een standaard layout te maken voor gebruik bij nieuwe websites die ik ga maken. Deze wil ik natuurlijk netjes en uitgebreid hebben.
De pagina's wil ik opvragen in index.php met behulp van een get (?page= bijvoorbeeld). Ik gebruik mod_rewrite om index.php/page/home om te zetten naar ?page=home. mijn .htaccess ziet er als volgt uit: (eerder werkte ik nooit met mod_rewrite, alleen met passwd)
RewriteEngine on
RewriteRule ^page/([^/\.]+)/?$ index.php?p=$1 [L]
In het menu laat ik de linkjes automatisch aanmaken door een functie getMenu(). De link die op de pagina's komt te staan zien er als volgt uit:
| <a href="page/home">Home</a> |
Probleem 1:
En zodra ik een menu item aan klik floept de layout weg (de css denk ik) maar de pagina wordt wel ingeladen. Hoe kan ik dit weg krijgen?
Probleem 2:
Als ik voor de tweede keer op een link klik wordt de url:
index.php/page/home/page/home
RewriteEngine On
RewriteBase /
RewriteRule ^page/(.*)/$ index.php?page=$1
Als goed is moet die werken.
Het kan ook zijn dat het komt doordat je
hier zegt "(?page= bijvoorbeeld)"
en in je .htaccess hebt staan, index.php?p= dit moet dan index.php?page= zijn lijkt mij.
Voor je tweede probleem kun je eventjes, <base href="JEwebsite"/>
in de head van je html zet. Dan gaat dit goed, dit lost waarschijnlijk ook meteen je 1e probleem op.
RewriteEngine On
RewriteBase /
RewriteRule ^page/(.*)/$ index.php?page=$1
Als goed is moet die werken.
Het kan ook zijn dat het komt doordat je
hier zegt "(?page= bijvoorbeeld)"
en in je .htaccess hebt staan, index.php?p= dit moet dan index.php?page= zijn lijkt mij.
Haha, het klopt inderdaad dat ik dat typte, maar dat was een type fout van mij.
Bas van de Steeg op 17/02/2012 15:37:28
Voor je tweede probleem kun je eventjes, <base href="JEwebsite"/>
in de head van je html zet. Dan gaat dit goed, dit lost waarschijnlijk ook meteen je 1e probleem op.
Bas, dat klopt maar ik noem het content management system op dit moment omdat het gewoon een lege huls is voor nieuwe websites waar je dan weer content in kan pleuren.
Als ik jouwn rewrite rule gebruik komt er inderdaad de juiste url te staan, maar nu denkt de browser dat hij dat pad ook moet hebben en krijg ik een 404.
Nops werkt niet, toch bedankt voor je hulp. Ik heb al op google gezocht maar kon niet dezelfde fout vinden.. ik snap ook niet waarom dit bij mij gebeurt bij alle websites de heletijd :P maar ik wacht wel op andere reacties
Ik heb het gefixed.
Het probleem wat ik had lag allemaal aan submappen.
Ik gebruikte een lokale server (XAMPP) die de url had: localhost/cms. Dit maakte veel fouten, hoe dit op te lossen is op deze manier weet ik niet.
Ik heb virtual hosts aangemaakt met de httpd-vhosts.conf en in de etc/drivers/hosts file van windows heb ik een linkje bijgeplaatst dat domein.tim naar 127.0.0.1 gaat.