[Apache] RewriteRule werkt niet, wat doe ik verkeerd.

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
link waar ik naar verwijs:

http:www.linkje.nl/link

Rewrite engine moet er van maken:

http:www.linkje.nl/link.php?var=$1

.htaccess code:



RewriteEngine ON

RewriteRule ^(link)$ link.php?var=$1

RewriteCond %{HTTP_HOST} ^linkje\.nl
RewriteRule ^(.*)$ http://www.linkje.nl/$1




Dit werkt prima, alleen hij geeft de "variabel" niet mee?
de "variabel" moet zijn "link" maar als ik deze echo krijg ik niks.


Als ik het volgende doe werkt het wel:

.htaccess code:



RewriteEngine ON

RewriteRule ^(link) link.php?var=$1

RewriteCond %{HTTP_HOST} ^linkje\.nl
RewriteRule ^(.*)$ http://www.linkje.nl/$1



nu zonder $ in mijn RewriteRule, hij werkt maar dan pakt hij niet strikt:

http:www.linkje.nl/link

maar ook:

http:www.linkje.nl/linkblablabla

Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Je wil matchen op /link en dan doorsturen naar /link.php?var=link. Waarom zet je dat dan niet neer?

code:
1
2
RewriteEngine ON
RewriteRule ^(link)$ link.php?var=link

Acties:
  • 0 Henk 'm!

  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-03-2024

Confusion

Fallen from grace

Verwijderd schreef op donderdag 15 oktober 2009 @ 08:59:
link waar ik naar verwijs:

http:www.linkje.nl/link

Rewrite engine moet er van maken:

http:www.linkje.nl/link.php?var=$1
Dit voorbeeld is vrij onduidelijk. Bedoel je dat

http://www.domein.nl/pad

worden worden omgezet in

http://www.domein.nl/link.php?var=pad
?

Wie trösten wir uns, die Mörder aller Mörder?


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
klopt! maar dat lukt niet :-/

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
En dan alleen "pad" geen "paddenstoel".

Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Kun je aangeven waarom wel pad, maar geen paddenstoel? En waarom wel link, maar geen linkbla? Wat is je logica hierachter? Waarom wil je dit? Wat is je doel?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Nog een voorbeeldje voor de zekerheid:

RewriteEngine ON
RewriteRule ^klantenservice "klantenservice.php?catsub=Klantenservice"

Dit werkt op http://domein.nl/klantenservice maar ook op http://domein.nl/klantenserviceBLA (komt om dat ik er geen $ staat. Duh).

Maar als ik doe:

RewriteEngine ON
RewriteRule ^klantenservice$ "klantenservice.php?catsub=Klantenservice"

Gaat hij wel naar klantenservice.php maar geeft hij de variabel niet mee!?

Acties:
  • 0 Henk 'm!

  • Japius
  • Registratie: April 2003
  • Laatst online: 30-08 20:57
Zet dan een $ achter pad.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
De reden is als volgt:

Hij moet (in jou voorbeeld) stikt "link" pakken omdat ik ook een "link-verzenden" heb.
Als ik dan zonder $ werk pak hij de zelfde RewriteRule.

[ Voor 4% gewijzigd door Verwijderd op 15-10-2009 09:55 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dat heb ik gedaan, alleen dan geeft hij de variabel niet meer mee.

[ Voor 0% gewijzigd door Verwijderd op 15-10-2009 09:55 . Reden: type foutje. ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Nog even voor de zekerheid getest:
Als ik direct naar:
"http://www.domein.nl/klantenservice.php?catsub=Klantenservice" ga dan geeft hij de variabel wel weer.

Acties:
  • 0 Henk 'm!

  • jbdeiman
  • Registratie: September 2008
  • Laatst online: 07:08
@Zwompy

Je kan het ook omdraaien, dan zet je de "link-verzenden" rewriterule voor de "link" rewrite rule. Dat werkt altijd. Volgorde van rewriterules is eigenlijk altijd wel al belangrijk, hier moet je dus ook goed over nadenken.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
jbdeiman schreef op donderdag 15 oktober 2009 @ 10:03:
@Zwompy

Je kan het ook omdraaien, dan zet je de "link-verzenden" rewriterule voor de "link" rewrite rule. Dat werkt altijd. Volgorde van rewriterules is eigenlijk altijd wel al belangrijk, hier moet je dus ook goed over nadenken.
Dat zou een oplossing kunnen wij maar is het dan niet mogelijk om strikt "link" en "link-verzenden" te gebruiken.? En dat mijn viaiabel blijft werken :-)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Na wat testen ben ik achter het volgende gekomen:

Met deze RewriteRule krijg ik GEEN variable.
RewriteRule ^klantenservice$ "klantenservice.php?catsub=Klantenservice"

Link: http://www.domein.nl/klantenservice

Met deze RewriteRule krijg ik WEL variable.
RewriteRule ^klantenserviceBLA$ "klantenservice.php?catsub=Klantenservice"

Link: http://www.domein.nl/klantenserviceBLA

Het lijkt er dus op dat een RewriteRule vergelijk op pad maar ook op RewriteRule link.

Iemand een idee hoe ik bij de volgende RewriteRule toch een var. krijg?

RewriteRule ^klantenservice$ "klantenservice.php?catsub=Klantenservice"

Acties:
  • 0 Henk 'm!

  • jbdeiman
  • Registratie: September 2008
  • Laatst online: 07:08
RewriteRule ^klantenservice/$ "klantenservice.php?catsub=Klantenservice"

Probeer het eens met de slash achter klantenservice? Ik weet het ook niet precies hoe het nou zit hoor, moet meestal ook wel even testen.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
jbdeiman schreef op donderdag 15 oktober 2009 @ 10:25:
RewriteRule ^klantenservice/$ "klantenservice.php?catsub=Klantenservice"

Probeer het eens met de slash achter klantenservice? Ik weet het ook niet precies hoe het nou zit hoor, moet meestal ook wel even testen.
De slash maakt niets uit.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik denk dat ik de oplossing weet:

Mijn Apache is zo ingesteld dat www.domein.nl/pad en www.domein.nl/pad.php werkt.
Dus de extensie kan je weg laten.

Nu denk ik dat als je naar:

www.domein.nl/pad ga Apache hem direct door stuurd naar www.domein.nl/pad.php en daarna pas de RewriteRule gaat toe passen.

Weet iemand hoe ik die extensies weet aan zet in apache?

Dan kan ik dat even testen.

[ Voor 4% gewijzigd door Verwijderd op 15-10-2009 10:55 ]

Pagina: 1