有什么方法可以阻止 Nginx 将路径附加到别名?

有什么方法可以阻止 Nginx 将路径附加到别名?

我有一个用于开发的 VM,在这个 VM 中,我在内部 IP(所以没有主机名)上运行 nginx,因此我所能处理的只是位置,而不是单独的服务器。

服务器本身有root /var/www/html;,我的一个位置,/site1位于/var/www/html/site1,有一个名为的子目录public,每次访问时都需要使用该子目录。基本上,任何要访问 的内容都/site1/(.+)需要加载/site1/public/$1(PHP 文件除外)

我遇到的问题是,无论我尝试什么设置,我都无法让它不重定向到/var/www/html/site1/public/site1/,它会按照/site1/浏览器请求的当前位置进行操作。

我该如何解决这个问题?有没有办法重写而不给 Nginx 附加路径的机会?

我无法将服务器设置为root/var/www/html/site1/public这将修复此问题(这是我们在实时环境中的设置),因为这个开发虚拟机上的其他位置将停止工作。

相关配置;

root /var/www/html;

location /site1 {
    alias /public;
}

location ~* ^/site1/.*\.php$ {
    include snippets/fastcgi-php.conf;

    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_param PATH_INFO $fastcgi_path_info;

    fastcgi_pass unix:/run/php/php7.1-fpm.sock;

    fastcgi_param SCRIPT_FILENAME /var/www/site1/application/entry.php;
}

相关内容