login  Naam:   Wachtwoord: 
Registreer je!
 Forum

mod_rewrite rest van de request uri (Opgelost)

Offline Tuinstoel - 02/08/2010 17:01
Avatar van TuinstoelPHP expert Als ik de onderstaande code gebruik om agenda.html om te zetten naar index.php?pagina=agenda; hoe krijg ik dan een eventueel vervolg van de uri zichtbaar voor php? Dus ?pagina=agenda&week=4. Als ik een print_r doe op $_GET staat ie er niet tussen.

  1. RewriteRule ^([A-Za-z0-9-]+)?.html$ index.php?pagina=$1


Wat moet hier bij? Kan er namelijk niet op komen :/.

8 antwoorden

Gesponsorde links
Offline vinTage - 02/08/2010 17:07 (laatste wijziging 02/08/2010 17:11)
Avatar van vinTage Nieuw lid je moet dan een extra 'rule' maken.

  1. RewriteRule ^([a-zA-Z0-9-]+)/([0-9]+)/([0-9]+)?.html index.php?pagina=$1&sub1=$2&sub2=$3


dus agenda/4/5

Zou je ophalen middels

pagina = $_GET['pagina']
sub1 = $_GET['sub1']
sub2 = $_GET['sub2']
en geeft dan

pagina=agenda&sub1=4&sub2=5
Offline Tuinstoel - 02/08/2010 19:03
Avatar van Tuinstoel PHP expert Maar dat is niet echt wat ik wil, meer iets in de trend van agenda.html?week=5 weet je wel. En wat er achter het vraagteken komt te staan moet geheel vrij zijn en niet gelimiteerd zijn aan wat er in de RewriteRule staat.
Offline vinTage - 02/08/2010 20:09
Avatar van vinTage Nieuw lid (*.?) staat voor 'alles', daarna kan je het opsplitsen op & of & of middels urlencode oid.
Offline Tuinstoel - 03/08/2010 22:44
Avatar van Tuinstoel PHP expert Uuuh help?
Offline vinTage - 03/08/2010 22:49
Avatar van vinTage Nieuw lid Nou, jij zegt dat je alles na het vraagteken 'open' wilt houden, dat gaat dan al niet, want je staat geen & toe in je rewrite rule 
(*.?) staat alles toe (wat je vast ook niet wilt en daarbij is die 'regex' enorm onvriendelijk en traag.

Maar wat is er nu verkeerd aan 'mijn' methode, sub1 en sub2 kan je toch gewoon OVERAL voor gebruiken ?
Offline Tuinstoel - 07/08/2010 10:51
Avatar van Tuinstoel PHP expert Hmm ik kom er niet helemaal uit, heb het ook iets bijgesteld nu wat ik wil (:P).

agenda/week/5.html is nu wat ik wil denk ik.

Dat werkt, maar zodra je er nog een paar dingen bij achter gooit (agenda/week/5/dag/3.html) flipt ie, _GET['pagina'] ziet agenda niet meer, maar in plaats daarvan index.php vreemd genoeg :S.

  1. RewriteRule ^([A-Za-z0-9-]+)?.html$ index.php?pagina=$1
  2. RewriteRule ^(.*)/(.*)/(.*).html index.php?pagina=$1&$2=$3
  3. RewriteRule ^(.*)/(.*)/(.*)/(.*)/(.*).html index.php?pagina=$1&$2=$3&$4=$5
  4. RewriteRule ^(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*).html index.php?pagina=$1&$2=$3&$4=$5&$6=$7
  5. RewriteRule ^(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*).html index.php?pagina=$1&$2=$3&$4=$5&$6=$7&$8=$9
Offline vinTage - 07/08/2010 11:18 (laatste wijziging 07/08/2010 12:07)
Avatar van vinTage Nieuw lid je moet sowieso van groot naar klein matchen, dus je onderste regel moet bovenaanstaan etc.

late edit: je moet toch nog eens naar mijn eerste voorbeeldje kijken 

jij overschrijft nu elke keer je variable met de volgende match.

Bedankt door: Tuinstoel
Offline Tuinstoel - 07/08/2010 12:27
Avatar van Tuinstoel PHP expert Oke vinTage, je bent wederom koning!

  1. RewriteEngine On
  2. RewriteBase /website/
  3. RewriteRule ^\.htaccess$ .htaccess [F]
  4. RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)?.html index.php?pagina=$1&$2=$3&$4=$5&$6=$7
  5. RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)?.html index.php?pagina=$1&$2=$3&$4=$5
  6. RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)?.html index.php?pagina=$1&$2=$3
  7. RewriteRule ^([A-Za-z0-9_-]+)?.html$ index.php?pagina=$1
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.2s