为什么重写指令会导致 Nginx 出现“301 永久移动”?

为什么重写指令会导致 Nginx 出现“301 永久移动”?

下面是我由 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/而它本来应该保持不变http://example.com/pma

如何避免 Nginx 发送301 Moved Permanently以使其不暴露我服务器上的实际目录结构?

相关内容