Toon posts:

[mod_rewrite] Rewriterules voor willekeurige querystrings *

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil met de Apache module mod_rewrite nettere URL's maken (duh) voor mijn site, zodat deze ook door zoekmachines gevonden kan worden.

Ik wil invoeren:

http://www.domein.com/5?x=1&y=2&z=3

alleen de eerste parameter is verplicht (5). de rest is optioneel en kan ook verschillen (x, y en z zijn slechts ter illustratie gebruikt.)

als ik dus bovengenoemde url aanroep wil ik naar:

http://www.domein.com/index.php?id=5&x=1&y=2&z=3

Ik heb nu het volgende in mijn .htaccess file staan:

code:
1
2
3
4
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^([0-9]+)$ /index.php?id=$1 [L]
</IfModule>


als ik nu de URL http://www.domein.com/1 intyp wordt de pagina van http://www.domein.com/index.php?id=1 weergegeven. dit is ook de bedoeling. NU wil ik echter nog dat de rest van de querystring erachter geplakt kan worden. Kan iemand me hierbij helpen?

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Titel afgemaakt ;)

Professionele website nodig?


Verwijderd

Topicstarter
dankje, wilde het zelf al editen, maar dat ging niet meer

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 19-05 09:52

thomaske

» » » » » »

iets van:
code:
1
2
3
4
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^([0-9]+)(.*)$ /index.php?id=$1$2 [L]
</IfModule>

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Verwijderd

Topicstarter
nope, daar had ik ook al aan gedacht.

om te testen doe ik in PHP
code:
1
print_r($_REQUEST);


het enige wat ik te zien krijg is id en nog wat zooi van een forumcookie, maar dat staat hier verder los van.

code:
1
2
3
4
5
Array
(
    [id] => 2
    [phpbb2mysql_data] => a:2:{s:11:\"autologinid\";s:32:\"d30ae41a0d2eca33700af62ab1908cda\";s:6:\"userid\";i:2;}
)

[ Voor 27% gewijzigd door Verwijderd op 05-11-2004 10:34 ]


Verwijderd

Topicstarter
opgelost!

iets anders dan ik gewild had, maar dat maakt verder niks uit (er is toch nog geen site...)

URL wordt nu http://www.domein.com/5 voor http://www.domein.com/index.php?id=5

en http://www.domein.com/5/x=1&y=2 voor http://www.domein.com/index.php?id=5&x=1&y=2

hier is de oplossing:

code:
1
2
3
4
5
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^([0-9]+)\/(.*)$ /index.php?id=$1&$2 [L]
RewriteRule ^([0-9]+)$ /index.php?id=$1 [L]
</IfModule>

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 19-05 09:52

thomaske

» » » » » »

Verwijderd schreef op 05 november 2004 @ 10:34:
nope, daar had ik ook al aan gedacht.
probeer deze eens:

code:
1
2
  RewriteEngine on
  RewriteRule ^/([0-9]+)(.*)?$ /index.php?id=$1$2 [L]


http://test/10&wopwop=koeien

[ Voor 6% gewijzigd door thomaske op 05-11-2004 10:49 ]

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


  • BetuweKees
  • Registratie: Januari 2003
  • Laatst online: 15-05 20:44

BetuweKees

Flipje uit Tiel

als je puur de querystring erachter wil, dan kun je QSA gebruiken

domain.com/1?a=b zou met onderstaande rewrite domain.com/index.php?id=1&a=b moeten worden (niet getest)

code:
1
2
RewriteEngine on
RewriteRule ^([0-9]+)$ /index.php?id=$1 [L, QSA]

Through meditation I program my heart to beat breakbeats and hum basslines on exhalation -Blackalicious || *BetuweKees was AFK; op de fiets richting China en verder

Pagina: 1