-1

下面是我在 Nginx 1.2.5 运行的服务器的配置文件中的一个非常简化的版本,但它在提供数据之前导致301 Moved PermanentlyLocation: http://example.com/phpmyadmin/这不是我对该rewrite指令的默认行为所期望的。

server {
    listen 80;
    location /pma {
        rewrite ^ /phpmyadmin;
    }
    location /phpmyadmin {
        root /var/www;
        index Documentation.html;
    }
}

当我http://example.com/pma在浏览器中访问时,会提供数据,但地址栏中的 URL 会更改为http://example.com/phpmyadmin/while 它应该保持http://example.com/pma

如何避免 Nginx 发送301 Moved Permanently,以便它不会在我的服务器上公开实际的目录结构?

4

2 回答 2

0

尝试别名:

server {
    listen 80;
    location /pma {
        alias /phpmyadmin;
    }
    location /phpmyadmin {
        root /var/www;
        index Documentation.html;
}
于 2012-12-05T21:42:02.377 回答
0

我认为您需要使用别名而不是重写。Rewrite 创建一个“新”URL,因此它会进行重定向

server {
    listen 80;
    location /pma {
        alias  /var/www/phpmyadmin;
        index Documentation.html;
    }
    location /phpmyadmin {
        root /var/www;
        index Documentation.html;
    }
}
于 2014-04-02T11:22:08.887 回答