3

我有下一条规则:

RewriteCond %{HTTP_REFERER} ^$ [OR]
RewriteCond %{HTTP_REFERER} !^https?://itransformer.*$ [NC]
RewriteRule \.(gif|jpe?g|png|wbmp)$ - [R=403,L]

在主.htaccess文件中。当任何人尝试热链接图像时,他将得到 403 响应。但是,他收到了 404 响应。如果我评论上面的行,我不会出错。

似乎是由于 Twig 异常模板。

我正在覆盖 Twig 异常模板中的一些错误模板。我已经通过添加文件成功覆盖了 404 错误模板:/app/Resources/TwigBundle/views/Exception/error404.html.twig.

并试图覆盖 403 错误模板。尝试添加:/app/Resources/TwigBundle/views/Exception/error403.html.twig但未显示。

ErrorDocumentApache 配置中没有,文件也没有.htaccess

为什么它会抛出 404 响应,什么时候应该抛出 403?

4

2 回答 2

0

你可以试试这个规则:

RewriteCond %{HTTP_REFERER} !^https?://mysite\.com [NC]
RewriteRule \.(gif|jpe?g|png|wbmp)$ - [NC,F]
于 2013-11-05T11:12:53.100 回答
0

我发现了这个问题:

虽然/app/Resources/TwigBundle/views/Exception/是自定义异常页面的框架路径,但当异常来自.htaccess文件或 Apache 配置时,您必须将路径也指定到.htaccess文件或 Apache 配置中,如下所示:

ErrorDocument 403 /errorTemplatesPath/error403.html.twig
ErrorDocument 404 /errorTemplatesPath/error404.html.twig
于 2013-11-19T12:45:45.430 回答