我有下一个Apache代码来防止热链接,它可以工作。
RewriteCond %{HTTP_REFERER} ^$ [OR]
RewriteCond %{HTTP_REFERER} !^https?://itransformer.*$ [NC]
RewriteRule /usuarios/.*\.(gif|jpe?g|png|wbmp)$ - [R=404,L]
问题是两个:
1 。如果我将上述内容更改为:
RewriteCond %{HTTP_REFERER} ^$ [OR]
RewriteCond %{HTTP_REFERER} !^https?://%{HTTP_HOST}.*$ [NC]
RewriteRule /usuarios/.*\.(gif|jpe?g|png|wbmp)$ - [R=404,L]
它不起作用。 %{HTTP_HOST}
等于itransformer
(在我的localhost中),所以我不明白为什么它不能以这种方式工作。
2 即可。将显示默认的404页面,而不是所有其他404响应中显示的自定义404页面。这可以发生什么?
答案 0 :(得分:0)
原因不在于您不能在RewriteCond
的右侧使用这些Apache内部变量。
我刚注意到R=404
。如果您需要自定义404处理程序,请确保在.htaccess:
ErrorDocument 404 /404.php