我正在尝试将此apache .htaccess规则转换为nginx可以使用的内容。
这个.htaccess是本教程的一部分,用于制作php REST api。 (http://www.androidhive.info/2014/01/how-to-create-rest-api-for-android-app-using-php-slim-and-mysql-day-23/)
这个.htaccess文件的想法是向" task_manager / v1 / register /"发出一个REST get / post请求。 它会将你重定向到" task_manager / v1 / index.php"
.htaccess文件:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ %{ENV:BASE}index.php [QSA,L]
我已尝试过stackoverflow中的一个想法,一个来自winginx,我尝试自己编写一个,而且它们都有点失败。
Nginx配置:
我尝试过但失败了,所以我对它进行了评论。
rewrite ^/task_manager/v1/(/)$ /task_manager/v1/index.php redirect;
我在stackexchange中看到的东西并没有帮助,所以我对它进行了评论
rewrite ^task_manager/api/v1/([^/]+)/([^/]+)/?$ task_manager/api/v1/index.php?class=$1&method=$2? last;
被推荐使用winginx,没有工作。 :C
location / {
if (!-e $request_filename){
rewrite ^(.*)$task_manager/v1/index.php break;
}
}
请告诉我。
答案 0 :(得分:1)
表示不快。我只是假装愚蠢的好事。
无论如何,所以是的,我试图让这个android REST API在nginx中运行。
我看了另一篇文章(nginx configuration for a RESTful API)
基本上我只需要改变一些事情。
原:
rewrite ^/api/v1/([^/]+)/([^/]+)/?$ /apiv1.php?class=$1&method=$2? last;
编辑:
rewrite ^/task_manager/v1/([^/]+)/?$ /task_manager/v1/index.php?method=$2? last;
它似乎适用于此特定教程。我遇到了一个与php5-fpm不同的问题,但至少当我在chrome上使用REST Client时,它会给我一个500错误(日志显示我的配置中的某些内容未被正确解析)或它会告诉我“没有没有用户“/”没有你没有登录“但至少这部分已经解决了。