我有一个搜索引擎,我希望搜索查询的URL更加人性化。 选择的分类引擎支持搜索,可以说CAT1,CAT2和CAT3在我的情况下,URL重写的正则表达式是什么?
如果用户选择CAT1和CAT3在搜索时,URL看起来像: mysite.com/search.php?q=productname&cats=cat3,cat1
我想重写URL看如下面的形式: mysite.com/productsearch/cat1-cat3/productname
是否可以重写该规则并用,
替换-
?
我有一个搜索引擎,我希望搜索查询的URL更加人性化。 选择的分类引擎支持搜索,可以说CAT1,CAT2和CAT3在我的情况下,URL重写的正则表达式是什么?
如果用户选择CAT1和CAT3在搜索时,URL看起来像: mysite.com/search.php?q=productname&cats=cat3,cat1
我想重写URL看如下面的形式: mysite.com/productsearch/cat1-cat3/productname
是否可以重写该规则并用,
替换-
?
sed 's/search.php\?q=\(.*\)&cats=\(cat[0-9]\),\(cat[0-9]\)/productsearch\/\2-\3\/\1/g'
应接近...
解析如下:?
“发现,后面的东西 ”的search.php Q =“,到” &”,并把它在缓冲区1
“发现后面的两件事‘’形式的‘猫=猫后面跟着一个数字’,并用逗号隔开 - 把它们放到缓冲区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
我刚刚意识到你可能想使用Apache的mod_rewrite语法...所以这不适合你。我将在今天晚些时候再次拍摄它。同时,也许有人可以从我的想法得到灵感...... – Floris 2013-02-14 15:30:18
你想cat3'和'cat1'的'顺序被转换,还是一个错字? – Floris 2013-02-14 14:49:35
否,原始URL和重写URL中的顺序都是不必要的。 – 2013-02-14 14:51:36