2012-03-03 23 views
-1

我處於這種情況,其中包含文件,但我不希望其他人通過瀏覽器單獨瀏覽「includes」目錄並單獨查看頁面。通過.HTACCESS保護PHP無效的推薦人?

我很熟悉如何通過PHP文件本身來處理它,但我希望使用.htaccess來防止它。

那麼,如何配置.htaccess以防止用戶不是來自某個推薦人查看「includes」文件夾中的PHP文件?

+0

這是沒有意義的,我:當你'包括()'在PHP中一個文件具有完全相同的引薦其包括腳本。我錯過了這一點嗎? – knittl 2012-03-03 19:44:47

+0

你很明白什麼是引用者的東西嗎? – 2012-03-03 19:53:05

回答

2

.htaccess會工作,但只是建議一個替代方案 - 爲什麼不把你的include目錄移到webroot之外?您的腳本仍然可以訪問它,並且不需要配置Apache來拒絕訪問。

+0

謝謝,我從來沒有想過這樣做。 – Propeller 2012-03-03 20:19:54

+0

@ShedoSurashu框架非常常見,整個框架和應用程序都在webroot之外。根目錄中的唯一文件是資源(圖像/ javascript/css)以及引導應用程序的單個文件。 – 2012-03-03 21:00:30

0

把.htaccess文件的目錄,你想不被看作並把這個在那裏:

order allow, deny 
deny from all 

這是簡單的塊中的所有方法。有關如何通過引用程序阻止的更多信息,請參閱here。 希望這有助於。

0

由於許多Web託管解決方案明確限制您在public_html(或equiv)層次結構中工作。所以我使用一個簡單的約定:如果我不想要一個文件或目錄是私人的 - 這是無法通過URI訪問的 - 那麼我的名字前綴爲「_」或「.」,例如我的PHP包含目錄被稱爲「_includes」。

我用這個模式在我.htaccess文件來執行此:

SetEnvIf Request_URI "(^_|/_|^\.|/\.)" forbidden 
<Files *> 
    Order allow,deny 
    Allow from all 
    Deny from env=forbidden 
</Files> 

您可以使用此方法,但修改正則表達式以任何適合你的個人習慣。一個優點是它可以在DOCROOT .htaccess文件中使用此模板。您不需要在受限制的子目錄中有.htaccess文件。

:-)