我有下一条规则:
RewriteCond %{HTTP_REFERER} ^$ [OR]
RewriteCond %{HTTP_REFERER} !^https?://itransformer.*$ [NC]
RewriteRule \.(gif|jpe?g|png|wbmp)$ - [R=403,L]
在主.htaccess
文件中。
当有人试图热链接图像时,他会得到403响应。但是,他得到了404回应。如果我评论上面的行,我没有错误。
似乎是由于Twig异常模板。
我正在覆盖Twig异常模板中的一些错误模板。
我通过添加文件/app/Resources/TwigBundle/views/Exception/error404.html.twig
成功覆盖了404错误模板。
并尝试覆盖403错误模板。尝试添加:/app/Resources/TwigBundle/views/Exception/error403.html.twig
但未显示。
Apache配置中没有ErrorDocument
,也没有.htaccess
个文件。
为什么它会抛出404响应,什么时候应该抛出403?
答案 0 :(得分:0)
你可以尝试这条规则:
RewriteCond %{HTTP_REFERER} !^https?://mysite\.com [NC]
RewriteRule \.(gif|jpe?g|png|wbmp)$ - [NC,F]
答案 1 :(得分:0)
我发现了这个问题:
虽然/app/Resources/TwigBundle/views/Exception/
是自定义异常页面的框架路径,但当异常来自.htaccess
文件或Apache配置时,您还必须将路径指定为.htaccess
文件或Apache配置,像这样:
ErrorDocument 403 /errorTemplatesPath/error403.html.twig
ErrorDocument 404 /errorTemplatesPath/error404.html.twig