2012-12-28 73 views
0

我試圖阻止用戶直接訪問我網站上的文件。基本上我有一個圖像位於/images/header.jpg.htaccess重定向直接訪問

我試圖使用.htaccess轉發所有嘗試直接訪問該文件「http://www.domain.com/images/header.jpg 「到我的404頁面,但我希望從我的源代碼調用時仍然加載圖像。讓情況變得複雜的事情是我實際上將header.jpg重定向到了另一個圖像文件夾。

所以最終想要的效果是:

用戶加載頁面 - > header.jpg被調用,並重定向到new_header.jpg 用戶試圖從他們的網站鏈接header.jpg - >他們重定向到我的404頁。

我已經嘗試了一些條件,但一直沒能達到預期的效果...

RewriteCond %{REQUEST_URI} ^/images 
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?domain.com [NC] 
RewriteRule ^(.*\header.jpg(/.*)?)$ new_header.jpg [L,QSA] 
+0

那些只是重寫條件,你是否有遵循它們的規則? –

+0

對不起是RewriteRule ^(。* \ header.jpg(/.*)?)$ new_header.jpg [L,QSA] – user1647347

回答

2

我想這樣的事情應該爲你工作:

RewriteEngine On 
#Redirect all request for things in /images that don't come from website to 404 page (assumed to be /404 in this case) - Prevents hotlinking 
RewriteCond %{REQUEST_URI} ^/images 
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?domain\.com [NC] 
RewriteRule ^.*$ /404 [L,R=404] 

#Redirect requests for /images/header.jpg to new_header.jpg image 
RewriteRule ^/?images/header.jpg /path/to/other/images/new_header.jpg [L] 
+0

嗯,第一個塊似乎工作正常,但header.jpg到new_header.jpg沒有運行在all..very怪異的 – user1647347

+0

你能否提供這兩個文件的位置以及你如何在那裏寫入你的RewriteRule的信息? –

+0

我調整了文件夾路徑後結束工作。謝謝! – user1647347