下面是我在Nginx 1.2.5運行的服務器的配置文件中的一個簡化版本,但是在服務數據之前它會導致301 Moved Permanently
和Location: http://example.com/phpmyadmin/
,這不是我期望從rewrite
指令的默認行爲。爲什麼使用Nginx重寫指令導致「301永久移動」?
server {
listen 80;
location /pma {
rewrite^/phpmyadmin;
}
location /phpmyadmin {
root /var/www;
index Documentation.html;
}
}
當我去http://example.com/pma
在瀏覽器中,數據服務,但在地址欄變爲http://example.com/phpmyadmin/
的URL,而它應該留http://example.com/pma
。
如何避免Nginx的發送301 Moved Permanently
,這樣它不公開我的服務器上的實際目錄結構?
但我想一個重定向,只有__internal__重定向不需要301要與所供應的數據的真實位置的信息一起發送。再次,這個例子被高度簡化並被重寫,配置在其原始形式中是非常有意義的。而問題更多的是爲什麼「重寫」會導致「301」。至少,這沒有記錄,不在重寫模塊的官方頁面上。 –
試試別名指令:http://wiki.nginx.org/HttpCoreModule#alias –
試過。一樣。在瀏覽器中,Nginx發送一個'301'並將URL改爲'http:// example.com/phpmyadmin /',而它應該保留爲'http:// example.com/pma'。 –