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

Hoe kan ik dit voorkomen?

Bij voorbaat dank!

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.
Bas van de Steeg op 17/02/2012 15:37:28


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.

wanneer ik dit naar http://localhost/cms, http://localhost/cms/ oid zet wordt de url http://localhost/page/home

dus nog neit opgelost
Tip: voor CMS zou ik geen Mod_Rewrite gebruiken want dan word de pagina door google makkelijk gevonden en dat wil je juist niet toch voor een CMS ?

Maar dat je dan naar http://localhost/page/home Gaat komt denk ik omdat dat door .htacces komt dus probeer de code is zo :

RewriteEngine On
RewriteBase /
RewriteRule ^cms/page/(.*)/$ cms/index.php?page=$1
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.

de url nu wanneer ik op een link klik: http://localhost/cms/page/home
Ben geen Expert in Mod_rewrite maar ik denk dat het dan toch zo moet.

RewriteEngine On
RewriteBase /
RewriteRule ^cms/page/(.*)/$ index.php?page=$1

En anders zul je toch eventjes moeten wachten op andere forum gebruikers. Maar ik zal er eventjes op googelen en het zelf testen.
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
Zou je misschien eventjes precies kunnen aangeven hoe je je mappen in elkaar hebt zitten want dan zal ik eventjes op mijn localhost even wat maken.
root(cms): [quote]admin
adminPagina.php


inc
config.php
style.css
jquery.js
main.js


loggedin
loginHome.php


nologin
home.php


index.php
.htaccess
[/quote]



[size=xsmall]Toevoeging op 18/02/2012 00:18:55:[/size]

Niemand die nu denkt van.. jaaaa dat is het!??
Hey mensen,

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.

Bedankt!

Reageren