2012-07-29 32 views
0
RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_COOKIE} !CookieName= [NC] 
RewriteRule .* http://www.domain.com/index.html [R,L] 

這就是我的.htaccess文件的外觀。我的問題: 如果cookie未設置,它仍然允許您查看.jpg文件(我不想發生的)(也可能是其他圖像文件,不知道),同時它會重定向到.docx中的index.html。 pptx,.sfk等。所以我想知道如何強制重定向訪問圖像(至少.jpg,.png,.gif)?.htaccess讓我們查看.jpg,同時防止查看他人

+0

我不認爲這是最好的方法 - 將圖像存儲在web根目錄之外,然後使用php腳本將它們顯示給登錄用戶(cookie中的cookie檢查)。 – 2012-07-29 20:37:22

+0

請注意,用戶自己注入cookie是微不足道的。如果您沒有檢查某些內容,則cookie對服務器所持有的信息有效,但您根本沒有添加任何安全性。一個解決方案是在檢查憑證後提供一個php文件,例如'showfile.php?FileId = 123'或'showfile.php?FileName = ANC.jpg'。這允許您將真實文件保留在文檔根目錄之外並正確限制訪問 – Basic 2012-07-29 20:37:29

+0

這不會導致重定向循環嗎? – 2012-07-29 21:00:18

回答

0

您可以嘗試一種熱鏈接防護策略。如果你試圖阻止外部訪問,比如其他網站使用你的圖片。

RewriteEngine On 
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC] 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteRule .*\.(jpe?g|gif|bmp|png)$ http://mysite.com/nolinking.gif [L] 

,或者你可以成爲一個403錯誤,而不是..

RewriteEngine On 
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC] 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteRule .*\.(jpe?g|gif|bmp|png)$ - [F] 

,但在所有你可以從長遠來看自己的網站上使用的圖像,如果你嘗試其他方法碰上衝突。我不知道你試圖完成什麼,所以我只是在猜測。