配置Apache将“GET / user / foo”路由到/user/GET.php,将“PUT / user / foo”路由到/user/PUT.php

时间:2009-12-31 02:42:28

标签: apache http rest routing scripting

我想安排一些事情以便GET请求例如

http://example.com/user/foo@bar.com

在内部调用脚本

/var/www/example.com/rest/user/GET.php

并且对同一URL的PUT请求在内部调用脚本

/var/www/example.com/rest/user/PUT.php

等等其他HTTP动词POST和DELETE。

几乎可以通过<Script>指令实现这一点,但它并不常用,因为“Script with a method of GET will only be called if there are query arguments present”。这意味着如果通过

配置Apache
<Location /user>
Script GET /rest/user/GET.php
Script PUT /rest/user/PUT.php
</Location>

然后,同时获得

的GET请求
http://example.com/user/foo@bar.com?foo=bar

将调用GET.php,如果请求不包含查询字符串“foo = bar”,则不会。

(另外,为什么<Script>首先设计得像这样?)

1 个答案:

答案 0 :(得分:2)

您可以使用mod_rewrite在RewriteCond

上使用REQUEST_METHOD

e.g:

RewriteCond %{HTTP_METHOD} ^GET$