nginx重写为按字母顺序的子目录

我试图将下面的Apache mod_rewrite规则转换成适当的nginx格式:

RewriteCond %{REQUEST_FILENAME} (.*)/([^\/])([^\/]+)/?$ RewriteCond %1/%2/%2%3 -d RewriteRule ^/?.* /%2/%2%3 [L] 

在实践中,这个规则重写裸目录请求,将它们放在基于第一个字符(区分大小写)的父目录中,所以http://example.com/foobar变成http://example.com/f/foobar ,等等。

其他的一切都是静态的内容,或者PHP,并通过FastCGI传递,并有location处理程序。

那么,你会在第二个RewriteCond失去目录testing,但是:

 rewrite ^/([^/])([^/]+)/?$ /$1/$1$2 last; 
  location ~ /([^/])([^/]+)/?$ { set $firstletter $1; set $sub $2; if (-d $request_filename) { rewrite ^ /$firstletter/$firstletter$sub last; } }