我有一个搜索引擎,我希望搜索查询的网址更具人性化。 引擎支持在所选类别中搜索,比如说cat1,cat2和cat3
如果用户选择cat1和cat3进行搜索,则URL将如下所示:
mysite.com/search.php?q=productname&cats=cat3,cat1
我希望重写网址看起来像以下形式:
mysite.com/productsearch/cat1-cat3/productname
是否可以重写此规则并将-
替换为,
?
答案 0 :(得分:0)
sed 's/search.php\?q=\(.*\)&cats=\(cat[0-9]\),\(cat[0-9]\)/productsearch\/\2-\3\/\1/g'
应该关闭......
解析这个:
“找到后面的内容”search.php?q =“,最多为”&“,并将其放入缓冲区1
“找到”cat =“形式为”cat后跟一个数字“并用逗号分隔的两件事 - 将它们放入缓冲区2和3”
“用productsearch/(buffer 2)-(buffer 3)/(buffer 1)
”
它可能不完美但它应该非常接近......测试输出:
echo 'mysite.com/search.php?q=productname&cats=cat3,cat1' | sed 's/search.php\?q=\(.*\)&cats=\(cat[0-9]\),\(cat[0-9]\)/productsearch\/\2-\3\/\1/g'
mysite.com/productsearch/cat3-cat1/productname