0

私は検索エンジンを持っており、検索クエリの URL をより人間が読めるようにしたいと考えています。エンジンは、選択したカテゴリでの検索をサポートしています。たとえば、cat1、cat2、および cat3 とします。

ユーザーが検索対象として cat1 と cat3 を選択した場合、URL は次のようになります。 mysite.com/search.php?q=productname&cats=cat3,cat1

書き換え URL を次の形式のようにしたい: mysite.com/productsearch/cat1-cat3/productname

このルールを書き直して に置き換えることはでき-ます,か?

4

1 に答える 1

0

sed 's/search.php\?q=\(.*\)&cats=\(cat[0-9]\),\(cat[0-9]\)/productsearch\/\2-\3\/\1/g'

近いはず…

これを解析する:

""search.php?q=" から "&" までを見つけて、バッファ 1 に入れます

「「cat の後に数字が続く」という形式の「cats=」に続き、コンマで区切られた 2 つのものを見つけます - それらをバッファ 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
于 2013-02-14T14:56:38.060 に答える