0

我有下一个 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(在我的本地主机中),所以我不明白为什么它不能以这种方式工作。

2 . 显示默认 404 页面,而不是显示在所有其他 404 响应中的自定义 404 页面。这里会发生什么?

4

1 回答 1

0
  1. 不这样做的原因是您不能在RewriteCond.

  2. 我刚注意到R=404。如果您需要自定义 404 处理程序,请确保在 .htaccess 顶部有类似的行:

    ErrorDocument 404 /404.php
    
于 2013-10-31T10:06:27.013 回答