Apache 使用htaccess on条件添加参数
对于熟悉Apache规则的人来说,这将是一个简单的解决方案 情况 使用支付宝作为支付平台,返回的URL不能包含任何您自己的URL参数(无论是GET还是POST)。然而,我使用的是Joomla,特别是Akeba订阅。此组件希望URL中有一个与所讨论的支付平台一致的参数 我想(通过支付宝的一个URL参数)检测返回页面何时被点击,并添加额外的参数 示例(域和页面编辑) 预期结果 a&paymentmethod=支付宝的简单添加 问题 我似乎无法让Apache接受规则;到目前为止,这里有几次尝试。请注意,我绝对可以使用.htaccess,无需更改基础Apache 使用htaccess on条件添加参数,apache,.htaccess,parameters,rewrite,Apache,.htaccess,Parameters,Rewrite,对于熟悉Apache规则的人来说,这将是一个简单的解决方案 情况 使用支付宝作为支付平台,返回的URL不能包含任何您自己的URL参数(无论是GET还是POST)。然而,我使用的是Joomla,特别是Akeba订阅。此组件希望URL中有一个与所讨论的支付平台一致的参数 我想(通过支付宝的一个URL参数)检测返回页面何时被点击,并添加额外的参数 示例(域和页面编辑) 预期结果 a&paymentmethod=支付宝的简单添加 问题 我似乎无法让Apache接受规则;到目前为止,这里有几次尝试。请注意
-- 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]
现在获取重定向链,直到它自动停止在重定向限制处如果您只是尝试将该URL中的查询字符串与重写条件匹配,则需要匹配第一个(
货币
)。哪一个最简单
试试这个。它将发送您想要的所有参数
RewriteCond %{QUERY_STRING} ^\bcurrency=
RewriteRule ^(.*)$ /$1?paymentmethod=alipay [R,QSA,L]
在你的URL中,
?
之前是什么?只是一个普通的URL,它在选择过程中没有独特的作用?首先,感谢“更容易理解”的重写规则,我喜欢这样。我仍然在经历无限的重定向。你知道我如何将“AND!paymentmethod”链接到它,这样当页面重定向时,它就不会再次添加所有内容了吗?显示一个包含子文件夹和所有内容的示例URL。还要确保您正在清除浏览器缓存。
RewriteCond %{QUERY_STRING} out_trade_no=
RewriteCond %{QUERY_STRING} !paymentmethod=
RewriteRule ^ %{REQUEST_URI}&paymentmethod=alipay [R,L]
RewriteCond %{QUERY_STRING} ^\bcurrency=
RewriteRule ^(.*)$ /$1?paymentmethod=alipay [R,QSA,L]