0

有人似乎在另一個網站的圖片參考中拼寫了一個域名。這導致我的網站受到了不存在的圖像請求的抨擊。我的服務器沒有配備處理這個問題。它不斷髮送404(未找到)響應,最大限度地利用了我的資源,並使我的託管服務提供商非常不安。如何使用WordPress .htaccess禁止(403)整個目錄?

其他網站的管理員沒有響應。

我想我需要發送403(禁止)而不是404(未找到)響應。

我的服務器收到這個樣子的這些請求:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteRule .*(theirdirectoryname).* - [F] 
</IfModule> 

這不起作用:

GET http://www.mywebsite.com/theirdirectoryname/their-file-name.jpg HTTP/1.1 

因此我嘗試以下添加到我的.htaccess文件。我的服務器仍然響應404而不是403.

任何人都可以看到我做錯了什麼嗎?

我的服務器正在運行WordPress。所以在我的htaccess中有一個WordPress部分,以及一個W3TC瀏覽器緩存部分,如果這有所幫助的話。

+0

你有沒有想過添加一個圖像作爲該文件名,然後可能將chmod更改爲440? – Dave

+0

我有點擔心我的服務器將無法處理。我經常在一秒鐘內收到幾個請求。我的理解是403響應占用的資源最少? – Tamara

+0

你試圖禁止訪問整個目錄(從瀏覽器和機器人)?如果是這樣,您可以在該目錄中創建一個.htaccess文件,其中包含「拒絕所有」。 – Dave

回答

0

您將需要您的服務器管理員爲您放置規則,大多數共享帳戶會忽略.htaccess規則。

但也有一對夫婦在這裏不同的選擇,

  1. 塊的網友ip與htaccess的(你會發現一號線已經存在,將二號線在它之下)

    Order Deny,Allow 
    Deny from 777.8.3.2 
    
  2. 防止圖像被完全與任何阿帕奇榨取httpd.conf文件

    SetEnvIfNoCase Referer "^http://www\.yoururl\.com/" banimages=1 
    SetEnvIfNoCase Referer "^http://yoururl\.com/" banimages=1 
    SetEnvIfNoCase Referer "^$" banimages=1 
        <FilesMatch "\.(gif|png|jpe?g)$"> 
        Order Allow,Deny 
        Allow from env=banimages 
        </FilesMatch> 
    

我可能會推薦第二個,您不想成爲您在線圖像的內容傳送服務。

+0

「大多數共享帳戶忽略.htaccess規則」 - 儘管OP已經在使用WordPress,mod_rewrite指令在.htaccess中顯示工作正常。 (?)'Allow from env'只是檢查環境變量的_existence_,你不能檢查它的值。 '允許從env = banimages = 1'總是會失敗。它應該簡單地是'允許來自env = banimages'(但是在這種情況下,'allowimages'不會是一個更合適的變量名?)。 – MrWhite

+0

@ w3d是的,大多數共享主機在apache中設置優先於.htaccess規則的規則。通常你可以製作一些尚未定義的mod,或者已經爲wordpress主機設置的mod。您可能會在那裏看到.htaccess文件,但它可能完全被忽略。這同樣適用於php.ini等 – David

+0

@ w3d以上代碼參考:https://wiki.apache.org/httpd/DisableImageHotLinking – David