[英]Deny all files except the index using apache
這是我的.htaccess
<Files *>
Order Deny,Allow
Deny from all
</Files>
<Files index.php>
Order Deny,Allow
Allow from all
</Files>
這是行不通的,因為如果我在瀏覽器中輸入主機名,它將提供index.php,但是apache似乎沒有應用“文件”指令,而是返回了不允許的文件訪問頁面,我需要輸入全名文檔(例如“ index.php”)以使其正常工作。 這不是很方便...
如果我希望用戶僅訪問網站中每個文件夾的索引文件,該如何進行? 所有其他文件都只是腳本包含的內容,因此我相信我正在做正確的嘗試,以使它們無法從Web上訪問(或者,如果您只有一個理由來證明另一種情況,也許不能)。
不管上面的問題,這是正確的方法嗎? (我認為這里的兩個指令並非整齊,但這是避免訪問文件的唯一方法,幾乎是我所知道的唯一方法)。
不確定是否需要這樣做,但是可以使用mod_setenvif
(無需將其包裝在<Files>
)
SetEnvIf Request_URI ^/index.php$ index
Order Allow,Deny
Allow from env=index
這將導致對hostname.com/的訪問達到403,但允許hostname.com/index.php。 如果您也想允許/,只需添加
SetEnvIf Request_URI ^/$ index
到頂部。 當然,所有這些將使index.php鏈接到的任何內容也將返回403。
<Files *?>
Order deny,allow
Deny from all
</Files>
您只需要添加一個問號即可匹配至少一個字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.