对于那些熟悉Apache规则的人来说,这将是一个简单的过程。
情况
使用支付宝作为支付平台时,返回URL不能包含您自己的任何URL参数(可以是GET或POST)。但是,我使用的是Joomla,特别是Akeeba订阅。此组件期望URL中的参数与所讨论的支付平台一致。
我想要检测(通过支付宝的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=alipay
问题
我似乎不能让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]进展
结合这两个,我已经取得了进展,但现在似乎重写部分垃圾邮件"paymentmethod=alipay“,这似乎会导致一个错误。
RewriteCond %{QUERY_STRING} out_trade_no=
RewriteCond %{QUERY_STRING} !paymentmethod=
RewriteRule ^ %{REQUEST_URI}&paymentmethod=alipay [R,L]现在获取一个重定向链,直到它在重定向限制处自动停止
发布于 2014-04-01 15:16:05
如果您只是尝试将来自该URL的查询字符串与第二个重写匹配,则需要匹配第一个查询字符串(currency)。这是最简单的。
尝尝这个。它会发送你想要的所有参数。
RewriteCond %{QUERY_STRING} ^\bcurrency=
RewriteRule ^(.*)$ /$1?paymentmethod=alipay [R,QSA,L]https://stackoverflow.com/questions/22777578
复制相似问题