php - 丢失图像时出现 symfony 500 错误

标签 php apache mod-rewrite symfony1 jpeg

我们注意到,当我们的网站中缺少图像时,会出现许多 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/

相关文章:

javascript - 如何禁用 Windows 打印对话框?

apache - htaccess - 删除 .php 扩展名并保留变量

apache - RewriteCond 以任意顺序匹配查询字符串参数

Javascript 选择开关选择更改

php - 调用 "onclick"函数并加载 url

java - 将图像上传到服务器并将带有文本值的路径存储到 MySQL 中

css无法加载其他目录中的图像

apache - 如何防止Internet Explorer在Domain匹配AD-Domain时以Intranet模式显示页面

apache - url 重写不适用于相对路径

php - .htaccess 将 Assets 重定向到 Assets 文件夹