Nginx重写工作除了根目录

时间:2014-07-25 04:44:48

标签: nginx

我想将所有与文件不匹配的请求传递给/framework/root.php?path={whatever the request $uri was}的脚本。

这适用于除/之外的所有请求,例如http://localhost

这是我的Nginx配置:

PS:今天才开始使用来自Apache的Nginx。

server {

    listen 80;

    root /var/www/html;
    server_name localhost;

    location / {
        try_files $uri $uri/ @root;
    }

    location @root {
        rewrite ^(.*)$ /framework/root.php?path=$1;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    location ~ /\.ht {
        deny all;
    }
}

1 个答案:

答案 0 :(得分:0)

Oooo得到了它。

try_files $uri $uri/ @root;应该是try_files $uri @root;而不是$uri/部分,因为它与基本/目录匹配。