如何使nginx重写规则有效?

时间:2015-06-14 05:16:15

标签: 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 $request_filename) {
        rewrite ^/(.*)  /index.php?$1 last;
    }   
}

我希望只要输入“http://host/signin”这样的网址,它就可以用作这些步骤。

第1步:将此网址重写为“http://host/account/page/signin” 第2步:使用规则“重写^ /(。*)/ index.php?$ 1 last;”重写它;

但现在,第1步正在运作,但似乎规则停在那里。

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

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

rewrite ^/signin(.*)$ /account/page/signin$1;

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

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

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

如何让它按我的意愿运作?

0 个答案:

没有答案