Apache 查询字符串参数在友好url上的位置

Apache 查询字符串参数在友好url上的位置,apache,.htaccess,mod-rewrite,url-rewriting,friendly-url,Apache,.htaccess,Mod Rewrite,Url Rewriting,Friendly Url,我不知道为什么这在htaccess规则中不起作用: 我希望友好的url可以得到2个querystring参数,它工作得很好,但问题是每个参数在querystring中的位置 我不知道2美元和3美元的确切位置 这是要尝试的url。。。 这是我的规则 RewriteRule ^[A-Za-z0-9-\+\.]+-id([0-9]{1,5})[\?]?([a-z0-9\-\_]*[\=]?[a-z0-9]*[\.]?[a-z0-9]*)&([a-z0-9\-\_]*[\=]?[a-z0-9]

我不知道为什么这在htaccess规则中不起作用: 我希望友好的url可以得到2个querystring参数,它工作得很好,但问题是每个参数在querystring中的位置

我不知道2美元和3美元的确切位置

这是要尝试的url。。。

这是我的规则

RewriteRule ^[A-Za-z0-9-\+\.]+-id([0-9]{1,5})[\?]?([a-z0-9\-\_]*[\=]?[a-z0-9]*[\.]?[a-z0-9]*)&([a-z0-9\-\_]*[\=]?[a-z0-9]*[\.]?[a-z0-9]*)$ car-profile.php?idModel=$1&$2&$3 [QSA,L]
我需要像这样将键和值(两者一起)作为$2和$3传递到目标url“aa=red“y”bb=coupe

我该怎么做


1000谢谢

对于您展示的样品,请尝试以下内容。 请确保在测试URL之前清除浏览器缓存

RewriteEngine ON
RewriteCond %{THE_REQUEST} \s/.*id=(\d+)\?aa=([^&]*)&bb=(.*)\s [NC]
RewriteRule ^ car-profile.php?idModel=%1&%2&%3 [QSA,L]
终于……我明白了

这是正确的正则表达式:

RewriteRule ^[A-Za-z0-9-\+\.]+-id([0-9]{1,5})?$ car-profile.php?idModel=$1 [QSA,L]
当我们放置标志“[QSA]”时,整个查询字符串将被连接到$1参数,因此,在php页面中,您可以获得典型的$get[“param”]中的每个值

示例:对于此输入url:

http://myweb.com/ferrari-testarossa-car-id460?bb=coupe&&aa=red
这将作为输出url获取:

http://myweb.com/car-profile.php?idModel=460?bb=coupe&&aa=red
这比我想象的要容易


这对每个人来说都很重要

好,但是在你的例子中,aa在第一位,bb在第二位。。。。但我想在非预定义位置上传递这些参数。。。。。对不起,我的english@mdromed,好的,你能解释一下这个吗?通过在这里给出一些URL示例/示例。我想从没有顺序位置的查询字符串中处理参数:
?aa=red&bb=coupe
将与
bb=coupe&&aa=red
@mdromed相同,我知道了,但是让我们假设
ferrari-testarossa-car-id460?aa=red&bb=coupe
或者
ferrari-testarossa-car-id460?bb=red&aa=coupe
在这两种情况下都应该像
car profile.php?idModel=%1&%2&%3
那样传递?如果不是,那么他们的顺序应该是什么?我还考虑到,你只有aa和bb字符串,现在没有其他的,让我知道在同一个。嗨再次。。。我在上探测了你的代码,但它不起作用。。。你能在那里测试你的代码吗?