2012-04-18 182 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