查询字符串参数在友好 url 上的位置
Position of querystring parameters on friendly url
我不知道为什么这在这个 htaccess 规则中不起作用:
我希望友好的 url 可以获得 2 个查询字符串参数并且它工作正常,但问题是每个参数在查询字符串中的位置。
我不知道$2和$3的具体位置
这是要尝试的 url...
http://myweb.com/ferrari-testarossa-car-id460?aa=red&bb=coupe
这是我的规则...
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=&& [QSA,L]
我需要像这样传递键和值(一起) "aa=red" y "bb=coupe"以 $2 和 $3
的形式到达目的地 url
我该怎么做?
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= [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
比我想象的要容易。
感谢大家
我不知道为什么这在这个 htaccess 规则中不起作用: 我希望友好的 url 可以获得 2 个查询字符串参数并且它工作正常,但问题是每个参数在查询字符串中的位置。
我不知道$2和$3的具体位置
这是要尝试的 url... http://myweb.com/ferrari-testarossa-car-id460?aa=red&bb=coupe
这是我的规则...
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=&& [QSA,L]
我需要像这样传递键和值(一起) "aa=red" y "bb=coupe"以 $2 和 $3
的形式到达目的地 url我该怎么做?
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= [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
比我想象的要容易。
感谢大家