首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在条件下使用htaccess添加参数

在条件下使用htaccess添加参数
EN

Stack Overflow用户
提问于 2014-04-01 13:33:13
回答 1查看 132关注 0票数 0

对于那些熟悉Apache规则的人来说,这将是一个简单的过程。

情况

使用支付宝作为支付平台时,返回URL不能包含您自己的任何URL参数(可以是GET或POST)。但是,我使用的是Joomla,特别是Akeeba订阅。此组件期望URL中的参数与所讨论的支付平台一致。

我想要检测(通过支付宝的URL参数之一)何时有返回页面被点击,并添加额外的参数。

示例(域名和页面已编校)

代码语言:javascript
复制
http://...?
    currency=HKD&
    total_fee=2.00&
    out_trade_no=211&
    trade_no=2014040100276615&
    trade_status=TRADE_FINISHED

期望的结果

代码语言:javascript
复制
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。

代码语言:javascript
复制
-- 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“,这似乎会导致一个错误。

代码语言:javascript
复制
RewriteCond %{QUERY_STRING} out_trade_no=
RewriteCond %{QUERY_STRING} !paymentmethod=
RewriteRule ^ %{REQUEST_URI}&paymentmethod=alipay [R,L]

现在获取一个重定向链,直到它在重定向限制处自动停止

EN

回答 1

Stack Overflow用户

发布于 2014-04-01 15:16:05

如果您只是尝试将来自该URL的查询字符串与第二个重写匹配,则需要匹配第一个查询字符串(currency)。这是最简单的。

尝尝这个。它会发送你想要的所有参数。

代码语言:javascript
复制
RewriteCond %{QUERY_STRING} ^\bcurrency=
RewriteRule ^(.*)$ /$1?paymentmethod=alipay [R,QSA,L]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22777578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档