nginx 根目录作为域中的子目录

nginx 根目录作为域中的子目录

我使用 nginx/1.10.1 和 PHP 7 FPM。

我将 phpmyadmin 从 Github 克隆到 /var/www/vhosts/phpmyadmin

我的域名位于 /var/www/vhosts/domain/domain.tld

域名与我的 nginx 配置配合良好,但我想将此目录与 phpmyadmin /var/www/vhosts/phpmyadmin 一起使用,例如在 domain.tld/phpmyadmin 上使用。

这里是我当前的 nginx 配置:

server {
    listen 443 http2 default_server ssl;
    root /var/www/vhosts/domain/domain.tld;
    index index.php index.html index.htm;

    server_name domain.tld www.domain.tld;

    location / {
            # return 301 https://$host$request_uri;
            try_files $uri $uri/ /index.php;
    }

    location /phpmyadmin/ {
    root /var/www/vhosts/phpmyadmin;
            # return 301 https://$host$request_uri;
    #        try_files $uri $uri/ /index.html;
    }

    location /piwik {
    root /var/www/vhosts;
            # return 301 https://$host$request_uri;
           try_files $uri $uri/ /index.php;
    }

答案1

您应该在您的部分中使用root /var/www/vhosts;alias /var/www/vhosts/phpmyadmin;来代替。root /var/www/vhosts/phpmyadmin;location /phpmyadmin/

root定义该部分的文档根目录,在查找资源时,URI 会附加在其后。因此,在您的情况下,nginx 会在/var/www/vhosts/phpmyadmin/phpmyadmin/index.php您尝试获取http://www.domain.tld/phpmyadmin/URL 时进行查找。

alias不同之处在于,它会从 URI 中删除与其location定义部分匹配的部分。

相关内容