.htaccess重写cond和规则到nginx config

时间:2016-02-01 01:32:29

标签: .htaccess nginx rewrite

我正在尝试将此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;
}
}

请告诉我。

1 个答案:

答案 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错误(日志显示我的配置中的某些内容未被正确解析)或它会告诉我“没有没有用户“/”没有你没有登录“但至少这部分已经解决了。