2012-08-29 25 views
1

所以我有兩條路線,而第一個不會停止的路線匹配,如文檔說應:爲什麼^〜不停止在nginx中處理路由規則?

location ^~ /p/ { 
    root /www/domain.com/; 
    try_files $uri $uri/ /path/index.html; 
} 

location ^~ /v/ { 
    root /www/domain.com/; 
    try_files $uri $uri/ /path/index.html; 
} 

location ^~/{ 
    root /www/domain.com/php_www/; 
    try_files $uri $uri/ /index.php; 

     location ~* \.(?:php|html)$ { 
      try_files $uri =404; 
      fastcgi_pass 127.0.0.1:9000; 
      include /etc/nginx/fastcgi_params; 
     } 

     auth_basic "Staging"; 
     auth_basic_user_file /www/.htpasswd; 

} 

所以,如果我有這樣的網址:

http://domain.com/p/1234567890 

它匹配最後的路線而不是第一條路線。問題浮出水面,因爲我們的球員之一,增加了一個頁面到應用程序:

http://domain.com/privacy 

這是,第一路由回升?問題來自哪裏。

我遇到的問題是與^〜。在文檔中,它表示一旦匹配,它就會停止匹配,但最後一條路線始終是加載的路線。

任何想法?

+0

僅供參考:http://wiki.nginx.org/HttpCoreModule#location – tvpmb

+0

我已經測試了一段時間了。看來問題與nginx沒有檢查第一條路由中的最後一個「/」有關。所以我可以做^〜/ p,它工作正常,但/隱私頁面不加載。但是當匹配的路線是^〜/ p /時它不起作用。這與這個該死的斜線有關! – tvpmb

+0

升級到最新的nginx,並重新命令了一些指令,現在一切正在運行。 – tvpmb

回答

0

升級到最新的nginx,並重新命令了一些指令,現在一切正在運行。