在我的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)来处理存在文件扩展名的情况?
答案 0 :(得分:0)
我会在网络服务器级别处理这个问题,如果可能的话,甚至不要让php减慢你的静态文件请求 - 例如nginx
我在{{1}中使用这个语句将php文件传递给解释器}}:
mysite.vhost.conf