login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[.htaccess] url rewrite (Opgelost)

Offline Raze - 08/09/2010 21:11
Avatar van RazePHP beginner Hallo,
ik heb volgende url rewrite
  1. RewriteRule ^payment.(htm|html|php)/accepted(/*)$ index.php?mdl=process&output=$1&page=payment&type=accepted [NC]


Echter, nu worden er via die url ook extra dingen meegeven, waardoor de url er als volgt uitziet:
http://localhos...me=...&;........

Nu, als ik dan de $_GET-array uitlees, krijg ik dit
  1. array(
  2. mdl => process
  3. output => html
  4. type => accepted
  5. )


dus die transID, name, ... staan er niet bij.

Ik heb dan dit geprobeerd:
  1. RewriteRule ^payment.(htm|html|php)/accepted/?(.*)(/*)$ index.php?mdl=process&output=$1&page=payment&type=accepted&$2 [NC]


Maar dat werkt dus niet. En dat ligt volgens mij aan die '?'. Want als ik die weglaat, en ik laat de '?' in de url ook weg, dan werkt het wel. Ik heb geprobeerd die ? te escapen (\?), maar dat werkt ook niet.

Iemand een idee?

8 antwoorden

Gesponsorde links
Offline Wijnand - 09/09/2010 13:02
Avatar van Wijnand Moderator Probeer zoiets eens:

Citaat:
RewriteRule ^[/]?payment.(htm|html|php)/accepted[/]?$ /index.php?mdl=process&output=$1&page=payment&type=accepted [NC]
Offline Raze - 09/09/2010 13:57 (laatste wijziging 09/09/2010 13:58)
Avatar van Raze PHP beginner
Wijnand schreef:
Probeer zoiets eens:

[..quote..]


Nee, dat werkt ook niet  

en als ik het mijne terug gebruik, en ik heb een url:
http://localhos...t1=waarde1, ...
dan werkt het niet, maar laat ik die ? weg, dan wel, terwijl er dat vraagteken toch in moet staan.
Offline Maarten - 09/09/2010 14:08
Avatar van Maarten Erelid Nee, dat vraagteken moet er niet staan.
Als je test=waarde1 in je url hebt, dan wordt er in je htaccess een & voorgezet (heb je er zelf ingezet hoor ) dus dat resulteert dan in &test=waarde1. En komt dus op die manier in de $_GET.
Offline Wijnand - 09/09/2010 14:19 (laatste wijziging 09/09/2010 14:30)
Avatar van Wijnand Moderator Owh ik begreep je denk ik fout. Poging 2:

Als ik deze link gebruik: http://localhos...t1=waarde1

werkt het met deze htaccess wel goed (dat hij erbij komt te staan):
RewriteRule ^[/]?payment.(htm|html|php)/accepted[/]?(.*)$ /payment.php?mdl=process&output=$1&page=payment&type=accepted$2 [NC]

Kun je daar wat mee?

(vergeet de link niet te bekijken, je moet er geen ?bla=bla achter zetten met &bla=bla.)
Offline Raze - 09/09/2010 14:42 (laatste wijziging 09/09/2010 14:46)
Avatar van Raze PHP beginner Ja ok, er moet inderdaad geen ?bla=bla achter maar een &bla=bla, maar het is een verwerkingspagina die werkt via ogone.

Na het betalen met VISA/Mastercard kom je terug op die pagina, en het is het systeem van ogone dat er dan die ?bla=bla achterzet. Ik kan moeilijk aan de klanten gaan vragen om eerst hun URL te veranderen van ? -> &.

EDIT: het werkt dus inderdaad als je in de URL de ? veranderd in een &, maar de response van ogone is nu eenmaal als volgt:

http:// localhost / payment.html / accepted / ?bla=bla&bla=bla...
en niet
http:// localhost / payment.html / accepted / &bla=bla&bla=bla...
Offline Maarten - 09/09/2010 15:14
Avatar van Maarten Erelid Redirect anders naar een gewone php pagina, die de betaling wegschrijft/afhandelt en dan redirect naar de gebruikerspagina met fancy URL? Uiteindelijk gaat die verwerking nog geen seconde duren, dus who cares dat daar in een flits een pagina tussen zit die geen rewriting gebruikt?
Offline Wijnand - 09/09/2010 15:18 (laatste wijziging 10/09/2010 09:23)
Avatar van Wijnand Moderator Ik heb de htaccess nu opgelost bij mij.

Dit is de link die ik gebruikt heb: http://localhos...t1=waarde1

Dit is de .htaccess die ik gebruikt heb:

Citaat:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^[/]?payment.(htm|html|php)/accepted/(.*)$ /payment.php?mdl=process&output=$1&page=payment&type=accepted&%1 [NC]


Je vangt de querystring met de RewriteCond en in de RewriteRule kun je die ophalen met %1 (eerste resultaat van de condition).
Offline Raze - 14/09/2010 16:49
Avatar van Raze PHP beginner ok sorry jongens was, effe vergeten dit te markeren als opgelost. Het werkt, bedankt wijnand ;)
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.176s