GET in url laten werken samen met HTACCESS
Slim Shady
16/01/2012 15:57:16Hallo
Ik heb een htaccess bestand dat de eerste 3 slashes als 'paginas'ziet.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)/(.*)/$ index.php?page=$1&sub=$2&subsub=$3 [L]
RewriteRule ^(.*)/(.*)/$ index.php?page=$1&sub=$2 [L]
RewriteRule ^(.*)/$ index.php?page=$1 [L]
Maar als ik nu de volgende link heb:
www.url.nl/pagina1/?edit=22
Dan ziet hij de get methode niet meer omdat hij dit als subpagina ziet.
Hoe kan ik alsnog get meesturen en htaccess behouden?
Met vriendelijke groet,
Ik heb een htaccess bestand dat de eerste 3 slashes als 'paginas'ziet.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)/(.*)/$ index.php?page=$1&sub=$2&subsub=$3 [L]
RewriteRule ^(.*)/(.*)/$ index.php?page=$1&sub=$2 [L]
RewriteRule ^(.*)/$ index.php?page=$1 [L]
Maar als ik nu de volgende link heb:
www.url.nl/pagina1/?edit=22
Dan ziet hij de get methode niet meer omdat hij dit als subpagina ziet.
Hoe kan ik alsnog get meesturen en htaccess behouden?
Met vriendelijke groet,
PHP hulp
22/11/2024 22:53:43Pieter Jansen
16/01/2012 16:03:16Door index.php?page te veranderen naar bijv. edit. Het is niet een nette oplossing wat je nu hanteert, het is te generiek. Een beter manier is door het dynamisch te doen en zelf kijken naar de parameters die meegegeven worden. Wat ik persoonlijk doe is:
Dit is eigenlijk alles wat je nodig hebt. Nu worden alle requests teruggekoppeld naar je index.php. Als je nu $_SERVER['REQUEST_URI'] bekijkt, zie je alle strings terug in je URI request, het enige wat je hoeft te doen is dat te gebruiken.
Dus url.nl/pagina1/pagina2/&edit=22 werkt allemaal. Je hebt je 1e param, je sub pagina`s param ( pagina2 ) en een $_GET met kv edit => 22
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
Dit is eigenlijk alles wat je nodig hebt. Nu worden alle requests teruggekoppeld naar je index.php. Als je nu $_SERVER['REQUEST_URI'] bekijkt, zie je alle strings terug in je URI request, het enige wat je hoeft te doen is dat te gebruiken.
Dus url.nl/pagina1/pagina2/&edit=22 werkt allemaal. Je hebt je 1e param, je sub pagina`s param ( pagina2 ) en een $_GET met kv edit => 22
Slim Shady
16/01/2012 16:15:27Oh dus niet de variable sleutel met de htaccess meegeeven maar alles doorsturen naar index.php en de URI Request explode.
Begrijp ik dat goed ?
Begrijp ik dat goed ?