2014-02-21 78 views
0

我有一個網站上的Apache Web服務器。 我有這樣的文件結構。限制訪問文件與Apache在Apache

test.php 
accessA.php 
otherfiles.php 

我要添加限制訪問test.php文件的所有用戶和所有的文件。例如,如果用戶輸入http://site/test.php作爲URL或文件或用戶要訪問的site/test.php目錄中的錯誤消息顯示並且用戶不能訪問testA.php。 但我想只允許accessA.php文件訪問test.php文件與這樣的include語句。 accessA.php

<?php 
include_once 'test.php' ; 
?> 

換句話說,我希望允許訪問的文件test.php只爲accessA.php。 我該怎麼做?

我可以使用open_basedir?

+0

在「text.php」的第一行中,針對一組已知權限測試用戶帳戶。如果用戶沒有適當的權限,請發送一個303. –

+0

我可以使用open_basedir嗎? – adib16

+0

我不明白你真的在問什麼。請讓問題更清楚。 –

回答

1

不能使用open_basedir的,這是一個配置誰允許的chroot的Apache的實例(誰使網站的根在哪裏,你definined它在開基dir變量的水平) 更好的方式來否認對某個頁面的訪問權限是做一個htaccess

1

放在上面的test.php的文件,該行:

if($_SERVER['SCRIPT_NAME']=='test.php')die('not allowed'); 

可以否認htaccess的規則也訪問。

RewriteRule ^test.php$ - [R=404,L] 
+0

在這種情況下我怎麼可以訪問test.php與accessA.php ?? – adib16

+0

如果你從'accessA.php'包含'test.php',腳本名稱將是'accessA.php'而不是'test.php',所以你可以包含'test.php' – markcial