Nginx将子目录作为基础URL传递给Kohana

在Nginx上设置了多个Kohana应用程序后,我需要调整每个应用程序的“base url”参数。 之前当我用.htaccess使用Apache时,这很容易( RewriteBase ),但在Nginx中,我发现了以下解决scheme:

 location /sites/site1/ { try_files $uri /sites/site1/index.php?$args; } location /sites/site2/ { try_files $uri /sites/site2/index.php?$args; } ...etc... 

现在,因为我想添加更多的应用程序,我宁愿有一个location块传递Kohana应用程序到正确的path。 我试过这样的事情( 这对我来说不起作用 ):

 location /sites/([a-z0-9\-]+)/ { try_files $uri /sites/$1/index.php?$args; } 

正如你所看到的,我不是一个正则expression式的专家,但我想通过任何现有的子目录名称包含字母数字字符和破折号对应的基本path。 谢谢。

你需要一个location前缀做正则expression式匹配。 尝试这个:

 location ~* ^/sites/([a-z0-9\-]+)/ { try_files $uri /sites/$1/index.php?$args; }