Php 如何使nginx重写规则起作用?

Php 如何使nginx重写规则起作用?,php,mod-rewrite,nginx,url-rewriting,Php,Mod Rewrite,Nginx,Url Rewriting,我想添加一些像这样的重写规则 location / { autoindex on; root /Users/guest/Projects/demo/public; index index.php index.html index.htm; location ~* ^/signin { rewrite ^/signin(.*)$ /account/page/signin$1 break; } if (!-e $r

我想添加一些像这样的重写规则

location / { 
    autoindex   on; 
    root   /Users/guest/Projects/demo/public;
    index  index.php index.html index.htm;

    location ~* ^/signin {
        rewrite ^/signin(.*)$ /account/page/signin$1 break;
    }   
    if (!-e $request_filename) {
        rewrite ^/(.*)  /index.php?$1 last;
    }   
}
我希望它能像这些步骤一样工作,只要我键入像“”这样的url

步骤1:将此url重写为“” 步骤2:使用规则“rewrite^/(.*)/index.php?$1 last;”重写它

但现在,第一步开始起作用了,但规则似乎到此为止

我尝试了一些不同的方法,比如

if (!-e $request_filename) {
     rewrite ^/signin(.*)$ /account/page/signin$1;
     rewrite ^/(.*)  /index.php?$1 last;
}

有时我可以从日志中获取此错误:

open() "/Users/guest/Projects/demo/public/account/page/signin" failed (2: No such file or directory)

我怎样才能让它按我的要求工作?

将它更改为您的要求
location/signin/{index.php index.html;重写^/signin/([^/]+)(/?)$/signin?login=$1 last;}
@Rajlaksh谢谢。但它仍然不起作用。
open() "/Users/guest/Projects/demo/public/account/page/signin" failed (2: No such file or directory)