通过.htaccess无限配对变量

时间:2014-01-04 16:00:38

标签: php regex .htaccess

这可能已经问到了,但我在这里苦苦挣扎,无法弄明白, 我对.htaccess不太满意

我正在开发一个API,并希望接受多个变量,例如

  

http://www.website.com/api/CONTROLLER/person/id/1/sort/name/limit/2

并希望获得类似

的内容
$_REQUEST['CONTROLLER']=person;
$_REQUEST['id']=1;
$_REQUEST['sort']=name;
$_REQUEST['limit']=2;

我目前正在通过php使用$_SERVER[REQUEST_URI]并进行爆炸,但想知道是否有办法直接在.htaccess上进行此操作

如果你知道哪一个会表现最好会很高兴听到它!

1 个答案:

答案 0 :(得分:0)

尝试:

RewriteEngine On
RewriteRule ^api/([^/]+)/([^/]+)(/.*)? /api/$3?$1=$2 [L,QSA]

假设您的php脚本是/api/目录中的index.php文件。否则,您还需要包括(最后):

RewriteCond %{QUERY_STRING} .+
RewriteRule ^api/$ /path/to/your/script.php [L,QSA]

请注意,这依赖于内部的mod_rewrite引擎循环。有一个服务器设置限制了内部重定向的最大数量,如果URL很长,它将达到内部递归限制并返回500.您可以使用LimitInternalRecursion指令更改它。