2011-02-04 36 views
0

我在密碼保護的目錄內有圖像,但我想在普通的未受保護的網站上顯示這些圖像中的一部分。我的服務器上的圖像在密碼保護目錄內

當我嘗試和並用一個簡單的顯示出來:

<img src ='PASSWORD PROTECTED DIR/Image.jpg"> 

它要求我輸入用戶名和密碼。

但是,我只想在我實際導航到受密碼保護的目錄內的內容時輸入用戶名和密碼。

我正在使用PHP。

任何想法?

+0

不管你使用的PHP是不相關的。什麼是服務器軟件? Apache的? – 2011-02-04 10:39:10

+0

在Apache的假設下重新標記。如果它是不同的服務器軟件,請更改 – 2011-02-04 10:43:27

回答

0

沒有很多棘手的代碼,這基本上是無法解決的。 <img>命令表示您的用戶將要求提供該信息,這與直接請求信息並無太大區別。

您可以啓動並檢查請求的製作方式,過濾器,通過php文件等加載所有圖片,但使用基本工具則無法實現。

直接請求圖片或通過<img>標籤是相同的。

1

假設您使用的是Apache。

您可以排除定義密碼保護的.htaccess文件中的一些文件。

未經檢驗的,但這應該工作:

<Files "path/to/image.jpg"> 
    Allow from all 
    Satisfy any 
</Files> 

但非常非常可取的選擇是簡單地將被保護目錄之外的圖像。

0

因爲它是PHP,你可以在一個單獨的文件做這樣的(imgHandler.php)

<?php 
// Allowed files 
$allowedfiles["image1"] = "./the_dir/Image.jpg"; 
$allowedfiles["image2"] = "./the_dir/Image2.jpg"; 

function getImage($path) { 

    echo file_get_contents($allowedfiles[$path]); 
} 
getImage($_REQUEST['img']); 
?> 

然後爲要顯示圖像,只需使用:

<img src="imgHandler.php?img=image1" /> 

這不會阻止緩存,並且比我之前介紹的其他解決方案更安全。