CakePHP Routing Slugs,检测扩展?

时间:2015-04-07 03:22:25

标签: cakephp cakephp-2.6

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

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

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

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

Cake将'apple-touch-icon-76x76'作为tenant_slug - 所以我们的服务器必须确定没有,它没有那个slug然后扔回Not Found错误。

我在路线上有以下匹配标准:

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

我也启用了以下功能:

CakePlugin::routes();

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

1 个答案:

答案 0 :(得分:0)

我会在网络服务器级别处理这个问题,如果可能的话,甚至不要让php减慢你的静态文件请求 - 例如nginx我在{{1}中使用这个语句将php文件传递给解释器}}:

mysite.vhost.conf