所以,我一直在尝试添加一个 404 控制器,以防图像丢失并且我需要去获取它。
最初,我尝试了一个 NotFoundHttpException/ResourceNotFoundException 监听器,它加载了一个类来处理它。如果这是 Symfony2 路由问题,这很好用。
问题是,它不是。它是 /web/bundles/mysite/images/missingimage.jpg 404,它似乎由 Apache 处理。
因此,使用 .htaccess 我尝试了:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^app\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .? - [L]
RewriteRule .? %{ENV:BASE}/app.php [L]
ErrorDocument 404 /web/404.txt
</IfModule>
只是想看看我能不能让它发挥作用,但我觉得它不会而且它没有。
那么,当我在 /web 文件夹中遇到 404 时,如何让我的设置转发到 Symfony2 页面。
我猜它应该是.htaccess,但我看的不多。
最后,我希望它去:
/web/app.php/FourZeroFourHandler/web/bundles/mysite/images/missingimage.jpg
或者:
/web/app_dev.php/FourZeroFourHandler/web/bundles/mysite/images/missingimage.jpg
取决于我是在生产还是开发。
和想法?