Mod_Rewrite en page including

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Aapje yeah

Aapje yeah

17/02/2012 14:17:09
Quote Anchor link
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)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
| <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!
Gewijzigd op 17/02/2012 14:18:53 door Aapje yeah
 
PHP hulp

PHP hulp

22/12/2024 06:25:03
 
Bas  van de Steeg

Bas van de Steeg

17/02/2012 15:37:28
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
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.
Gewijzigd op 17/02/2012 15:38:34 door Bas van de Steeg
 
Aapje yeah

Aapje yeah

17/02/2012 15:57:10
Quote Anchor link
Bas van de Steeg op 17/02/2012 15:37:28:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
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
 
Bas  van de Steeg

Bas van de Steeg

17/02/2012 16:05:06
Quote Anchor link
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 :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
RewriteEngine On
RewriteBase /
RewriteRule ^cms/page/(.*)/$ cms/index.php?page=$1
 
Aapje yeah

Aapje yeah

17/02/2012 16:20:16
Quote Anchor link
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
 
Bas  van de Steeg

Bas van de Steeg

17/02/2012 16:26:55
Quote Anchor link
Ben geen Expert in Mod_rewrite maar ik denk dat het dan toch zo moet.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
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.
 
Aapje yeah

Aapje yeah

17/02/2012 16:29:07
Quote Anchor link
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
 
Bas  van de Steeg

Bas van de Steeg

17/02/2012 16:33:03
Quote Anchor link
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.
 
Aapje yeah

Aapje yeah

17/02/2012 16:41:09
Quote Anchor link
Quote:
root(cms):
Quote:
admin
adminPagina.php


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


Quote:
loggedin
loginHome.php


Quote:
nologin
home.php


index.php
.htaccess




Toevoeging op 18/02/2012 00:18:55:

Niemand die nu denkt van.. jaaaa dat is het!??
Gewijzigd op 17/02/2012 16:46:20 door Aapje yeah
 
Aapje yeah

Aapje yeah

22/02/2012 11:33:05
Quote Anchor link
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!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.