0

私は動作するRewriteRuleを持っています:

RewriteRule ^category/?(.*)/([0-9]+)/([0-9]+)/([a-z]+)-([0-9]+)$ category.php?%{QUERY_STRING}&id=$2&paginate=$3&sort=$4&page=$5 [L]

処理されたURLは次のようになります。

www.mysite.com/category/hockey/10/18/recent-3

今、私は私のURLを次のようにしたいと思います:

www.mysite.com/category/hockey?id=10&paginate=18&sort=recent-3

私が試してみました:

RewriteRule ^category/?(.*)?id=([0-9]+)&paginate=([0-9]+)&sort=([a-z]+)-([0-9]+)$ category.php?%{QUERY_STRING}&id=$2&paginate=$3&sort=$4&page=$5 [L]

しかし、私はそれを機能させることができませんでした。

何か案は?

4

1 に答える 1

2

?のクエリ文字列( URL内の以降のすべて)と照合することはできませんRewriteRule。:%{QUERY_STRING}を使用して、変数と後方参照に対してそれを行う必要があります。%

RewriteCond %{QUERY_STRING} ^id=([0-9]+)&paginate=([0-9]+)&sort=([a-z]+)-([0-9]+)$
RewriteRule ^category/?(.*) category.php?id=%1&paginate=%2&sort=%3&page=%4 [L]
于 2012-09-12T06:01:53.283 に答える