nginx更改phpmyadmin文件夹名称更改错误

nginx更改phpmyadmin文件夹名称更改错误,php,apache,configuration,nginx,Php,Apache,Configuration,Nginx,我有我的phpmyadmin设置 location /phpmyadmin { root /usr/share/; index index.php index.html index.htm; location ~ ^/phpmyadmin/(.+\.php)$ { try_files $uri =404; root

我有我的phpmyadmin设置

 location /phpmyadmin {
               root /usr/share/;
               index index.php index.html index.htm;
               location ~ ^/phpmyadmin/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                       fastcgi_pass 127.0.0.1:9000;
                       fastcgi_index index.php;
                       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                       include /etc/nginx/fastcgi_params;
               }
               location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                       root /usr/share/;
               }
        }
        location /phpMyAdmin {
               rewrite ^/* /phpmyadmin last;
        }
我希望更改文件夹名称,以便可以通过/secure访问phpmyadmin

 location /secure {
               root /usr/share/;
               index index.php index.html index.htm;
               location ~ ^/secure/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                       fastcgi_pass 127.0.0.1:9000;
                       fastcgi_index index.php;
                       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                       include /etc/nginx/fastcgi_params;
               }
               location ~* ^/secure/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                       root /usr/share/;
               }
        }

但是它一直给我404找不到,任何帮助都会被感谢的。谢谢你在这种情况下需要使用别名

location /secure/ {
           alias /usr/share/phpmyadmin/;

通过以上设置,对
/secure/
的所有请求将被删除到
/usr/share/phpmyadmin/
类似的内容应该可以工作

location /secure/ {
    alias /usr/share/phpmyadmin/;

    location ~ ^/secure/(.+\.php)$ {
        alias /usr/share/phpmyadmin/$1;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }
}

下面的工作和测试

location /pma/ {
    alias /usr/share/phpmyadmin/;
}

location ~ ^/pma/(.+\.php)$ {
    alias /usr/share/phpmyadmin/$1;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $request_filename;

    # From fastcgi_params
    include fastcgi_params;
    fastcgi_param  DOCUMENT_ROOT      /usr/share/phpmyadmin;
}
关键是设置以下参数

fastcgi_param  DOCUMENT_ROOT      /usr/share/phpmyadmin;
这是一个在fastcgi_参数中获得se的变量,但当它位于下面时,它就像一个符咒 将两个位置的“pma”更改为您想要的任何内容,它就会工作……无需sym链接

干杯

试试这个:

location /secure {
    alias /usr/share/phpmyadmin;
    index index.php index.html index.htm;

    location ~ ^/secure/(.+\.php)$ {
        alias /usr/share/phpmyadmin/$1;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;

        include fastcgi_params;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin/$1;
        fastcgi_pass php;
    }

    location ~* ^/secure/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
        alias /usr/share/phpmyadmin/$1;
    }
}

此配置将根据请求查找/usr/share/secure。那么我应该如何更改它,mate?我从未真正尝试过。一个简单(但不干净)的可能性是将/usr/share/secure符号链接到/usr/share/phpmyadmin——但有更好的解决方案,所以我不会将此作为答案发布。您可以阅读nginx文档。您可以发布一个更好的解决方案,并将我重定向到登录页面吗