![为什么重写指令会导致 Nginx 出现“301 永久移动”?](https://linux22.com/image/828382/%E4%B8%BA%E4%BB%80%E4%B9%88%E9%87%8D%E5%86%99%E6%8C%87%E4%BB%A4%E4%BC%9A%E5%AF%BC%E8%87%B4%20Nginx%20%E5%87%BA%E7%8E%B0%E2%80%9C301%20%E6%B0%B8%E4%B9%85%E7%A7%BB%E5%8A%A8%E2%80%9D%EF%BC%9F.png)
下面是我由 Nginx 1.2.5 运行的服务器的配置文件中的一个简化版本,但它在提供数据之前会导致出现问题301 Moved Permanently
,Location: 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
以使其不暴露我服务器上的实际目录结构?