我不知道为什么这在这个htaccess规则中不起作用:我希望友好的url可以获得2个querystring参数,并且它运行良好,但问题是每个参数在querystring中的位置。
我不知道2美元和3美元的确切位置。
这是要尝试的url。。。http://myweb.com/ferrari-testarossa-car-id460?aa=red&bb=轿跑车
这是我的规则。。。
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]
我需要像这样传递密钥和值(两者都在一起(aa=红色";y">bb=轿跑车";到目标url为$2和$3
我该怎么做?
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
这比我想象的要容易。
对每个人来说都很重要