我们注意到,当我们的网站中缺少图像时,会出现许多 500 错误(出现这种情况的原因有多种) - symfony 会首先尝试在通常的“uploads/custom/myasset.jpg”文件夹中找到该资源如果它找不到 Assets ,那么它将通过 symfony 来尝试找到匹配的路线,正是这种“通过”symfony 导致了轻微的性能问题,我想知道是否有其他人遇到过这个问题以及他们是如何解决的.
我尝试过 mod_rewrite 规则,但我的正则表达式知识很糟糕!
干杯!
最佳答案
您可以添加 RewriteCond 以从 RewriteRule 中排除某个目录。
例如:
RewriteCond %{REQUEST_URI} !^/images/
RewriteRule ^(.*)$ index.php [QSA,L]
将从 symfony 前端 Controller 的默认重写规则中排除任何以“/images/”开头的请求。您可以根据需要在 RewriteRule 之前添加任意数量的 RewriteCond,或者您可以修改正则表达式以适应不同的情况,例如:
RewriteCond %{REQUEST_URI} !^/(images|uploads)/
但是,您的问题表明仍然存在另一个问题,因为 symfony 在无法路由请求时应该抛出 404 期望,这会导致 HTTP 404 响应。它绝对不会导致 HTTP 500 响应。也许有故障的 404 Controller 正在抛出异常。您应该进一步调查错误 500 的原因。
关于php - 丢失图像时出现 symfony 500 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9001413/