簡體   English   中英

拒絕訪問 .htaccess 中的一個特定文件夾

[英]Deny access to one specific folder in .htaccess

我試圖通過操縱 URL 來拒絕用戶訪問site/includes文件夾。

我不知道我是否必須拒絕所有內容並手動設置個別例外以允許,我是否可以拒絕這個文件夾,或者是否有可以使用的重寫功能。

具體示例:我不想通過在 URL 中鍵入localhost/site/includes來查看目錄文件。

創建site/includes/.htaccess文件並添加以下行:

Deny from all

您還可以使用RedirectMatch拒絕訪問文件夾

將以下行添加到 htaccess

RedirectMatch 403 ^/folder/?$

這將為文件夾返回403 forbidden錯誤,即: http://example.com/folder/ : http://example.com/folder/但它不會阻止訪問該文件夾內的文件和文件夾,如果您想阻止文件夾內的所有內容,則只需更改正則表達式模式到^/folder/.*$

另一個選項是mod-rewrite如果啟用了url-rewrting-module ,您可以在root/.htaccss使用類似以下root/.htaccss

RewriteEngine on

RewriteRule ^folder/?$ - [F,L]

這將在內部將對該folder的請求映射到forbidden錯誤頁面。

.htaccess文件中,您需要使用

Deny from  all

把它放在site/includes/.htaccess以使其特定於includes目錄

如果您只想禁止列出可以使用的目錄文件

Options -Indexes 

我們將目錄設置為非常安全,拒絕所有文件類型的訪問。 下面是您要插入到 .htaccess 文件中的代碼。

Order Allow,Deny 
Deny from all 

由於我們現在已經設置了安全性,我們現在希望允許訪問我們想要的文件類型。 為此,請將以下代碼添加到剛剛插入的安全代碼下的 .htaccess 文件中。

<FilesMatch "\.(jpg|gif|png|php)$">
Order Deny,Allow
   Allow from all
</FilesMatch>

你最終的.htaccess文件看起來像

Order Allow,Deny 
Deny from all 

<FilesMatch "\.(jpg|gif|png|php)$">
Order Deny,Allow
   Allow from all
</FilesMatch>

來自允許訪問受保護目錄中的特定文件類型

您可以為該文件夾創建一個 .htaccess 文件,該文件應該拒絕訪問

Deny from  all

或者您可以重定向到自定義 404 頁面

Redirect /includes/ 404.html

只需將 .htaccess 放入您要限制的文件夾中

## no access to this folder

# Apache 2.4
<IfModule mod_authz_core.c>
    Require all denied
</IfModule>

# Apache 2.2
<IfModule !mod_authz_core.c>
    Order Allow,Deny
    Deny from all
</IfModule>

來源: MantisBT來源。

創建 index.php、index.html、index.htm 是不安全的。 因為,任何人都可以通過猜測文件名來訪問您指定目錄中的文件。 例如:http: //yoursite.com/includes/file.dat因此,推薦的方法是創建一個 .htaccess 文件來拒絕所有訪問者;)。 玩得開心!!

您還可以將此IndexIgnore *放在根 .htaccess 文件中,以禁用所有網站目錄(包括子目錄)的文件列表

您可以通過這種方式動態執行此操作:

mkdir($dirname);
@touch($dirname . "/.htaccess");
  $f = fopen($dirname . "/.htaccess", "w");
  fwrite($f, "deny from all");
fclose($f);

在 Apache 2.4 上,您可以在根.htaccess文件中使用 Apache <If>表達式來阻止直接訪問此特定子目錄及其中的所有內容。

例如:

<If "%{REQUEST_URI} =~ m#^/site/includes($|/)#">
    Require all denied
</If>

由於某些我不明白的原因,創建文件夾/.htaccess 並從所有添加拒絕對我不起作用。 我不知道為什么,這看起來很簡單但不起作用,將 RedirectMatch 403 ^/folder/.*$ 添加到根 htaccess 反而起作用了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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