2013-10-10 73 views
1

我有一個目錄結構: 的httpdocs /文件/文件夾1 的httpdocs /文件/文件夾2 的httpdocs /文件/ folder3htacess配置不正確配置

等於httpdocs /文件我有一個.HT訪問文件:

RewriteEngine on 
RewriteRule ^(.*).(PDF)$ fileopen.php 

,並在此文件夾中我有fileopen.php

這個文件然後打開在文件夾1 PDF文件取決於由HTTP文件請求發送$ _Get請求folder3 docs文件夾。

我希望htaccess文件限制對所有文件夾的訪問,但允許fileopen.php請求的任何pdf被下載和打開。這是可能的原因,我不能得到它的工作。

感謝

回答

0

雖然可以使用mod_rewrite規則來阻止它。我想最簡單和健壯的解決方案是移動folder1, folder2, folder3以外DOCUMENT_ROOT

然後你可以有httpdocs和一個新的pdfdir在同一級別。然後pfdir可以包含folder1, folder2, folder3

事情是這樣的:

---> httpdocs/ 
----------> .htaccess 
----------> fileopen.php 
----------> documents/ 
---> pdfdir/ 
----------> folder1/ 
-------------------> foo.PDF 
----------> folder2/ 
-------------------> bar.PDF 
----------> folder3/ 
-------------------> baz.PDF 

這樣pdfdir及其內容從網頁無法訪問,您index.php仍然可以使用fopen等文件中的函數訪問它們。

+0

我不想使用webroot以外的東西,但想要嘗試使htaccess工作 - 但我放棄了把它放在webroot之外是非常簡單的,就像你說強大的感謝 – user1616338

+0

不客氣,保持這些文件以外是比任何其他解決方案更安全。 – anubhava

0

嘗試這樣:

RewriteEngine on 
RewriteRule ^(.*).(PDF)$ fileopen.php?file=$1 [L] 
RewriteRule ^(folder1|folder2|folder3) - [L,F] 
+0

這種工作,但加載時的PDF是空白 – user1616338

+0

@ user1616338它取決於你的'fileopen.php'腳本[返回正確的內容類型](http://stackoverflow.com/questions/312230/proper -mime-media-type-for-pdf-files)然後讀取並輸出pdf文件。 –