【发布时间】:2015-03-16 21:38:55
【问题描述】:
我是nginx 的新手,对重写规则有疑问。我正在尝试为一个非常小的 API 配置重写规则,有什么比我想出的更合适的方法吗?
我将在它后面运行 PHP,使用一种 MVC 工作流,其中控制器、方法和参数将从 URI 中获取,但第一个参数将代表 API 密钥。
PHP 概念:
controller->method( arguments )
配置:
location /api/ {
# passing api key only
rewrite ^/api/([0-9\-]+)/?$ /api/index.php?apikey=$1 last;
# passing api key and controller
rewrite ^/api/([0-9\-]+)/([0-9a-zA-Z\-]+)/?$ /api/index.php?apikey=$1&controller=$2 last;
# passing api key, controller and method
rewrite ^/api/([0-9\-]+)/([0-9a-zA-Z\-]+)/((select|insert|delete)+)/?$ /api/index.php?apikey=$1&controller=$2&method=$3 last;
# passing api key, controller, method and arguments
rewrite ^/api/([0-9\-]+)/([0-9a-zA-Z\-]+)/((select|insert|delete)+)/([0-9\-]+)/?$ /api/index.php?apikey=$1&controller=$2&method=$3&argument=$4 last;
}
提前致谢,
【问题讨论】:
标签: php model-view-controller nginx rewrite rules