为什么^〜不会停止处理nginx中的路由规则?

时间:2012-08-29 22:44:56

标签: nginx webserver rewrite

所以我有2条路线,第一条没有停止路线匹配,正如文档所说:

location ^~ /p/ {
    root /www/domain.com/;
    try_files $uri $uri/ /path/index.html;
}

location ^~ /v/ {
    root /www/domain.com/;
    try_files $uri $uri/ /path/index.html;
}

location ^~ / {
    root /www/domain.com/php_www/;
    try_files $uri $uri/ /index.php;

        location ~* \.(?:php|html)$ {   
            try_files $uri =404;
            fastcgi_pass 127.0.0.1:9000;
            include /etc/nginx/fastcgi_params;
        }

        auth_basic "Staging";
        auth_basic_user_file /www/.htpasswd;

}

所以,如果我有这样的网址:

http://domain.com/p/1234567890

它匹配最后一条路线而不是第一条路线。问题浮出水面,因为我们其中一个人在应用程序中添加了一个页面:

http://domain.com/privacy

这是由FIRST路线拾取的?问题来自何处。

我遇到的问题是^〜。在文档中,它表示一旦匹配,它将停止匹配,但最后一条路径始终是加载的路径。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

升级到最新的nginx,并重新订购了一些指令,现在一切正常。