0

在我的 2.X 应用程序中,我们通过 URL 中的 Slug 检测哪个租户正在使用系统,即:

app/[tenant_slug]/[controller]/[action]

然而问题是当用户浏览器请求我们的服务器没有的一些静态文件时,例如:

app/apple-touch-icon-76x76.png

Cake 将“apple-touch-icon-76x76”作为tenant_slug - 所以我们的服务器必须确定不,它没有那个slug,然后返回一个未找到的错误。

我在路线上有以下匹配条件:

$validTenant = '[a-zA-Z0-9-_]+';

我还启用了以下功能:

CakePlugin::routes();

处理此问题的正确方法是什么,以便路由器知道如果请求了静态资源(即:以 .js、.css、.png 等结尾的文件),它不应该将文件名用作 slug?或者,我是否应该让我的代码查找tenant_slug (TenantAuthorizeComponent) 来处理有文件扩展名的情况?

4

1 回答 1

0

如果可能的话,我会在网络服务器级别处理这个问题,甚至不要让 php 减慢您的静态文件请求 - 例如,nginx我使用以下语句将 php 文件传递​​给解释器mysite.vhost.conf

location ~ \.php$ {
   fastcgi_pass  php;
}
于 2015-04-07T07:00:12.057 回答