.htaccess将查询string重写为path

我已经search了这个问题,但我只能遇到真正具体的答案,似乎很难适应我的具体需求。

比方说,我试图重写的URL是这样的:

http://www.example.org/test.php?whatever=something 

我想重写它,看起来像这样:

 http://www.example.org/test/something 

我该怎么做?

为了将/test/something的请求路由到内部重写,以便/test.php?whatever=something中的内容得到处理,您可以在文档根目录的htaccess文件中使用这些规则:

 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^/?test/(.*?)/?$ /test.php?whatever=$1 [L] 

为了将查询stringURLredirect到更好看的一个:

 RewriteCond %{THE_REQUEST} ^[AZ]{3,9}\ /test\.php\?whatever=([^\&\ ]+) RewriteRule ^/?test\.php$ /test/%1? [L,R=301]