位置中的另一个根/别名产生 403

位置中的另一个根/别名产生 403

我不希望 phpMyAdmin 位于我的网站所在的文件夹中,但它们应该分别具有访问权限http://test.example.sitehttp://test.example.site/phpMyAdmin但这种配置似乎不起作用:

  • 403 上http://test.example.site/phpMyAdmin
  • No input file specifiedhttp://test.example.site/phpMyAdmin/index.php

配置如下所示。

server {
    server_name test.example.site;

    error_log /var/log/nginx/test.error.log error;
    access_log /var/log/nginx/test.access.log;

    root /home/me/test/www-site;

    gzip on;
    gzip_types application/x-javascript application/javascript text/javascript text/css;

    client_max_body_size 50m;


    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
            expires 1M;
    }

    location / {
            index index.php index.html index.htm;
    }

    location /phpMyAdmin/ {
            # one of those is included, both don't work
            alias /home/me/test/phpMyAdmin;
            root /home/me/test/;
    }

    location ~ \.php {
            fastcgi_pass    unix:/var/run/php5-fpm.sock;
            fastcgi_split_path_info ^(.+\.php)(.*)$;

            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

答案1

你不能通过几个兄弟姐妹终止请求location指令(除非您进行 URL 重写)。

  • 您的请求http://test.example.site/phpMyAdmin返回,403因为location /phpMyAdmin/不能有索引文件(index来自的指令location /不适用),并且不允许目录列表。

  • 您的请求http://test.example.site/phpMyAdmin/index.php同样只能同时适合一个位置。因此,它将由 处理location ~ \.php,其根为/home/me/test/www-site,因为 中的指令location /phpMyAdmin/不适用。

同样,指令alias并且root互相排斥。

相关内容