2012-04-18 231 views
2

在這篇文章的底部是我目前的nginx重寫規則,它的大部分工作,因爲它應該。我似乎遇到的唯一問題是example.com/?action=cmd等鏈接的示例,此操作正在處理爲example.com/clientarea/?action=cmdnginx重寫規則與try_files

我在尋找對於一種方式,當?符號叫,它會自動添加它來example.com/index.php而不是/ clientarea/

location =/{ 
    rewrite^/clientarea/ permanent; 
} 

location ~ ^(.*)$ { 
try_files $uri $uri/ /index.php?$1; 
} 

回答

1

假設你有一個最近Nignx 1.0.x的+(我認爲)的版本,這應該工作:

location =/{ 
    if ($is_args = '?') { 
     return 301 $scheme://$host/index.php$is_args$args; 
    } 
    rewrite^/clientarea/ permanent; 
} 

location ~ ^(.*)$ { 
    try_files $uri $uri/ /index.php?$1; 
} 
+0

這工作得很好!謝謝! – 2012-04-19 15:05:43