簡體   English   中英

使用Apache拒絕除索引以外的所有文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM