Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 使用htaccess on条件添加参数_Apache_.htaccess_Parameters_Rewrite - Fatal编程技术网

Apache 使用htaccess on条件添加参数

Apache 使用htaccess on条件添加参数,apache,.htaccess,parameters,rewrite,Apache,.htaccess,Parameters,Rewrite,对于熟悉Apache规则的人来说,这将是一个简单的解决方案 情况 使用支付宝作为支付平台,返回的URL不能包含任何您自己的URL参数(无论是GET还是POST)。然而,我使用的是Joomla,特别是Akeba订阅。此组件希望URL中有一个与所讨论的支付平台一致的参数 我想(通过支付宝的一个URL参数)检测返回页面何时被点击,并添加额外的参数 示例(域和页面编辑) 预期结果 a&paymentmethod=支付宝的简单添加 问题 我似乎无法让Apache接受规则;到目前为止,这里有几次尝试。请注意

对于熟悉Apache规则的人来说,这将是一个简单的解决方案

情况 使用支付宝作为支付平台,返回的URL不能包含任何您自己的URL参数(无论是GET还是POST)。然而,我使用的是Joomla,特别是Akeba订阅。此组件希望URL中有一个与所讨论的支付平台一致的参数

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

示例(域和页面编辑) 预期结果 a&paymentmethod=支付宝的简单添加

问题 我似乎无法让Apache接受规则;到目前为止,这里有几次尝试。请注意,我绝对可以使用.htaccess,无需更改基础

-- 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]