Maar als ik dan $_GET['page'] print, krijg ik 'index.php' te zien in plaats van 'iets'. Weet iemand wat ik fout doe?
[size=xsmall]Toevoeging op 13/11/2010 18:11:46:[/size]
- edit -
Ik was de '/' vergeten achter '^(.*)'
Ik heb nu dit:
RewriteRule ^(.*)/ index.php?pr=$1 [L]
Dit werkt. Als ik nu naar mijnstie.nl/iets/ ga is er niets aan de hand.
Maar het kan ook zo zijn dat die laatste '/' niet in de url zit. Dan wil ik alsnog dat de url werkt. Dus ik dacht ik zet er een '?' achter. Maar dat lijkt niet te werken. Iemand een idee?
RewriteRule ^(.*)/? index.php?pr=$1 [L] #Met '?' erbij werkt niet
Als ik 'home' ervoor typ dan werkt het allemaal wel. Maar ik wil juist niet iets ervoor hebben. Het moet in mijn geval dus zonder 'home'. Dus heb het zo geprobeerd:
Waarmee 'naam' dan de naam is van je controller class? Ik dacht dat index.php dan met een $_GET de naam opvangt en daarmee de juiste controller class aanroept.
- edit-
Nevermind, het werkt wel wat je zei. Ik had de $ niet gezien op het eind ^^
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/$0 [PT]
En dan met $_SERVER['PATH_INFO'] aan de gang gaan.
Op het moment overschijf je namelijk alle GET parameters, al kun je dat fixen door [L] te veranderen in [L,QSA] (Query String Append)
Vervolgens lees ik deze uit:
$linkpath = explode('/', $_GET['linkpath']);
Echter wanneer er een pad is met het & teken in de tekst dan wordt hij vanaf dat moment afgekapt. Dus bijv. /test/jan&piet/kees/ wordt omgezet naar /test/jan