简单的阿帕奇 mod_rewrite URL

Simple apache mod_rewrite URL

好吧,我正在尝试做一件看似简单的事情,希望得到一些帮助。

我有一个 URL 这样的:

http://www.example.com/api/?q=sometask&paramX=somevalue&paramY=someothervalue

我希望通过以下方式访问它:

http://www.example.com/api/sometask/?paramX=somevalue&paramY=someothervalue

"q" 值可以像 "sometask" 一样简单,也可以像 "sometask/123/otherthing/y" 一样复杂,但它始终是 "q" 的值。其余参数(例如 paramX 和 paramY)应该放在 URL.

的末尾

比如我想:

http://www.example.com/api/?q=sometask/123/otherthing/y&paramX=somevalue&paramY=someothervalue&paramZ=somethirdvalue

可通过以下方式访问:

http://www.example.com/api/sometask/123/otherthing/y/?paramX=somevalue&paramY=someothervalue&paramZ=somethirdvalue

我过去设置了一些非常非常基本的 mod_rewrite 规则(pageA 重定向到 pageB 等),但我对它还不够熟悉,甚至无法编写这个(看似)简单的规则.因此,我们将不胜感激任何帮助(回答)!

谢谢!

将此添加到您的网络根 / 目录中的 .htaccess

Options +FollowSymLinks -MultiViews
RewriteEngine on

RewriteRule ^api/(.+)/$ /api/?q= [NC,L,QSA]