重写url / v1 / json / acount为?v = v1&f = json&t = account

我怎样才能重写这个urlapi.domain.com/v1/json/account?id=123到api.domain.com?id=123&v=v1&f=json&t=account

 RewriteCond %{HTTP_HOST} ^(api)\.[^\.]+\.[^\.]+$ [NC] RewriteCond %{REQUEST_URI} ^/([^/]+)/([^/]+)/([^/]+)/?(\?%{QUERY_STRING})?$ [NC] RewriteRule ^(.*)$ /?%{QUERY_STRING}&v=%1&f=%2&t=%3 [L] 

RewriteRule ^/([^/]+)/([^/]+)/([^/]+) /?v=$1&f=$2&t=$3 [QSA,R,L]

应该这样做 – 你非常接近。 你可以在你的RewriteCond %{HTTP_HOST}上面添加一行(我没有为你testing过)。

让查询string追加(QSA)标志为您辛苦工作:)。 如果你对如何工作感到好奇,请参阅mod_rewrite文档 。

编辑:只是为了澄清,你需要完成的唯一行是我已经发布的,它消除了你的第二个RewriteCond和RewriteRule,并折叠成一个声明。 您可以select在其上添加一个额外的RewriteCond来检查%{HTTP_HOST}的值。

 RewriteCond %{HTTP_HOST} ^api\.[^\.]+\.[^\.]+$ [NC] RewriteCond %{REQUEST_URI} /([^/]+)/([^/]+)/([^/]+) [NC] RewriteRule ^(.*)$ /?%{QUERY_STRING}&v=%1&f=%2&t=%3 [L]