我有一个/ad-reports/
和/ad-reports/promos
的Laravel路由工作正常,直到我在public
内放置与这些名称匹配的目录。我为什么这样做?我需要它们进行缓存,因此如果在/ad-reports/promos/12345.pdf
内没有保存名为12345.pdf
的PDF,则Laravel会处理(例如)public/ad-reports/promos
的请求,但如果PDF已经保存,则由Apache执行已经创建并保存在那里。
我不想弄乱我的网址结构(有了路由的全部意义,所以我们不会让文件系统决定我们的网址)当然我不能放弃缓存。
如何强制Apache忽略/ad-reports/
和/ad-reports/promos
的请求,但是处理应该处理的所有内容?
或者(更好的是,实际上)如何让Apache忽略对文件夹的请求,并且只响应特定文件的请求,让Laravel处理与public
内的文件不匹配的任何内容?
答案 0 :(得分:3)
从.htaccess文件中删除此行:
RewriteCond %{REQUEST_FILENAME} !-d
如果目录存在,它告诉apache处理目录,但只需要它来处理文件是否存在,这是由-f
行完成的。