2013-10-31 59 views
0

我有下一個Apache代碼,以防止盜鏈,它的工作原理。爲什麼在HTTP_HOST文字字符串工作時%{HTTP_HOST}不起作用?

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

的問題有兩個:

。如果我改變了上面:

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

這是行不通的。 %{HTTP_HOST}等於itransformer(在我的本地主機),所以我不明白爲什麼它不以這種方式工作。

。顯示默認的404頁面,而不是顯示在所有其他404響應中顯示的自定義404頁面。這裏會發生什麼?

回答

0
  1. 原因爲什麼它不能在RewriteCond的右側使用這些Apache內部變量。

  2. 我剛剛注意到R=404。如果你需要定製404處理器,那麼要確保你有類似的線像這樣在你的.htaccess的頂部:

    ErrorDocument 404 /404.php 
    
+0

哇!我可能會把我的頭靠在牆上!你知道第二個問題嗎? – Manolo

+0

是的,但你沒有發佈任何自定義的404處理程序,這就是爲什麼我不能給你一個答案。 – anubhava

+0

剛編輯也回答第二部分。 – anubhava

相關問題