login  Naam:   Wachtwoord: 
Registreer je!
 Forum
Zoeken  Regels  Help
Categorieën > Overige

[.htaccess] url rewrite (Opgelost)

Raze – 08/09/2010 21:11
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
Daisycon - Verdien geld met uw website

Wijnand – 09/09/2010 13:02
Probeer zoiets eens:

Citaat:
RewriteRule ^[/]?payment.(htm|html|php)/accepted[/]?$ /index.php?mdl=process&output=$1&page=payment&type=accepted [NC]

Raze – 09/09/2010 13:57 (Laatst gewijzigd op 09/09/2010 13:58)
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.

Maarten – 09/09/2010 14:08
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.

Wijnand – 09/09/2010 14:19 (Laatst gewijzigd op 09/09/2010 14:30)
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.)

Raze – 09/09/2010 14:42 (Laatst gewijzigd op 09/09/2010 14:46)
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...

Maarten – 09/09/2010 15:14
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?

Wijnand – 09/09/2010 15:18 (Laatst gewijzigd op 10/09/2010 09:23)
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).

Raze – 14/09/2010 16:49
ok sorry jongens was, effe vergeten dit te markeren als opgelost. Het werkt, bedankt wijnand ;)

Gesponsorde links

Dit onderwerp is gesloten.
Actieve forumberichten:

© 2002-2012 Sitemasters.be - Regels - Gehost door: Vircon - Laadtijd: 0.02s