|
Categorieën >
Overige
[.htaccess] url rewrite (Opgelost)
|
|
|
offline
|
PHP beginner
|
Hallo,
ik heb volgende url rewrite
RewriteRule ^payment.(htm|html|php)/accepted(/*)$ index.php?mdl=process&output=$1&page=payment&type=accepted [NC]
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
array(
mdl => process
output => html
type => accepted
)
array(
mdl => process
output => html
type => accepted
)
dus die transID, name, ... staan er niet bij.
Ik heb dan dit geprobeerd:
RewriteRule ^payment.(htm|html|php)/accepted/?(.*)(/*)$ index.php?mdl=process&output=$1&page=payment&type=accepted&$2 [NC]
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
|
|
|
offline
|
PHP expert
|
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)
|
|
offline
|
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
|
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.
|
Wijnand – 09/09/2010 14:19 (Laatst gewijzigd op 09/09/2010 14:30)
|
|
offline
|
PHP expert
|
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)
|
|
offline
|
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
|
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?
|
Wijnand – 09/09/2010 15:18 (Laatst gewijzigd op 10/09/2010 09:23)
|
|
offline
|
PHP expert
|
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
|
|
offline
|
PHP beginner
|
ok sorry jongens was, effe vergeten dit te markeren als opgelost. Het werkt, bedankt wijnand ;)
|
Dit onderwerp is gesloten.
|
|
|