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

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

在 Nginx 上设置了多个 Kohana 应用程序后,我需要为每个应用程序调整“基本 URL”参数。以前,当我使用 Apache 时,.htaccess这很容易 ( RewriteBase),但在 Nginx 中,我找到了以下解决方案:

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 应用程序传递到正确的路径。我尝试过类似这样的操作(这对我来说不行):

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

如您所见,我不是正则表达式专家,但我想将任何现有子目录的名称包含字母数字字符和破折号传递到相应的基本路径。谢谢。

答案1

您需要一个前缀来location进行正则表达式匹配。试试这个:

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

相关内容