对熟悉Apache规则的人来说,这很简单。
使用支付宝作为支付平台,返回网址不能包含您自己的任何网址参数(无论是GET还是POST)。但是,我使用的是Joomla,特别是Akeeba订阅。此组件需要URL中的参数符合相关支付平台。
我希望在点击返回页面时检测(通过支付宝的一个网址参数)并添加额外的参数。
http://...?
currency=HKD&
total_fee=2.00&
out_trade_no=211&
trade_no=2014040100276615&
trade_status=TRADE_FINISHED
http://...?
currency=HKD&
total_fee=2.00&
out_trade_no=211&
trade_no=2014040100276615&
trade_status=TRADE_FINISHED&
paymentmethod=alipay
简单添加& paymentmethod =支付宝
我似乎无法让Apache接受规则;到目前为止,这里有几次尝试。请注意,我绝对可以使用.htaccess,不需要更改RewriteBase。
-- Attempt 1 --
RewriteCond %{QUERY_STRING} out_trade_no=
RewriteRule ^out_trade_no paymentmethod=alipay&out_trade_no [R,L,QSA]
-- Attempt 2 --
RewriteCond %{QUERY_STRING} (^|&)out_trade_no=(&|$) [NC]
RewriteRule ^ %{REQUEST_URI}&paymentmethod=alipay [L,R=301,QSA]
结合这两个,我已经取得了进展但是,现在似乎有Rewrite部分垃圾邮件“paymentmethod = alipay”,这似乎会导致错误。
RewriteCond %{QUERY_STRING} out_trade_no=
RewriteCond %{QUERY_STRING} !paymentmethod=
RewriteRule ^ %{REQUEST_URI}&paymentmethod=alipay [R,L]
现在获得一个重定向链,直到它自动停止在重定向限制
答案 0 :(得分:0)
如果您只是尝试将该URL中的查询字符串与该重写匹配,则需要匹配第一个(currency
)。哪个是最简单的。
试试这个。它将发送您想要的所有参数。
RewriteCond %{QUERY_STRING} ^\bcurrency=
RewriteRule ^(.*)$ /$1?paymentmethod=alipay [R,QSA,L]