nginx位置块匹配顺序查询

时间:2013-10-23 11:01:46

标签: nginx

我的conf文件中有以下内容:

server {
    listen 80;
    server_name a.mydomain.com;

    location /f/ {
        alias /var/www/sites/mydomain/photos/;
        expires 1y;
    }

    location ~ \.(php|html)$ {
        include php.conf;
    }

    location / {
        return 301 http://www.mydomain.com$request_uri;
    }
}

php.conf在哪里

fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
fastcgi_param  PHP_VALUE  "include_path=.:/usr/share/pear:/var/www/sites/mydomain/conf";
include /etc/nginx/fastcgi_params;
fastcgi_index index.php;
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;

让我感到困惑的是,我的最终位置(“位置/”)块,完全符合我的要求。除了那些以/ f / get开头的请求之外的任何请求都会重定向到父www域。

哪个好,这就是我想要的。

但是,文档另有说明。它说我的正则表达式php块应该在最后的“/”块之前匹配(并优先)?

不是吗?

“检查位置指令的顺序如下:

  • 具有完全匹配查询的=前缀的指令(文字字符串)。如果找到,搜索将停止。

  • 所有剩余的指令与传统字符串。如果此匹配使用^〜前缀,则搜索停止。

  • 正则表达式,按照在配置文件中定义的顺序。

  • 如果#3产生匹配,则使用该结果。否则,使用#2的匹配。“

0 个答案:

没有答案