使用 Htaccess 封鎖 URL 及其子 URL

使用 Htaccess 封鎖 URL 及其子 URL

我有一個網址http://example.com/web/en/press-release/。如何阻止所有使用者造訪和查看該頁面並http://localhost:10004/web/en/press-release/*使用.htaccess

我希望它們只能從特定的 IP 存取。

我確實喜歡這個,但沒有工作。

# Press Release Blocked Now
RewriteCond %{HTTP_REFERER} web/en/press-release/ [NC,OR]
RewriteRule .* - [F]

答案1

如果你必須使用.htaccess文件你應該知道他們的限制:

.htaccess檔案(或「分散式設定檔」)提供了一種在每個目錄的基礎上進行設定變更的方法。包含一個或多個設定指令的檔案被放置在特定的文件目錄中,並且這些指令適用於該目錄及其所有子目錄。

這意味著您可以控制以下設置檔案系統容器而不是網路空間容器,並且預設配置適用於所有子目錄。因此,要實現您的目標,您必須將.htaccess檔案放置到 URL 路徑 對應的檔案系統路徑中/web/en/press-release/

如果/web/en/press-release/兩者上的localhost:10004example.com引用相同的目錄,並且兩者都使用 Apache 直接從檔案系統提供服務(即它不是反向代理),檔案系統上下文是一個不錯的選擇。從配置部分:什麼時候使用

在檔案系統容器和網路空間容器之間進行選擇實際上非常容易。將指令套用至駐留在檔案系統中的物件時,請務必使用<Directory><Files>。將指令套用至不駐留在檔案系統中的物件(例如從資料庫產生的網頁)時,請使用<Location>.

<Location>當嘗試限制對檔案系統中物件的存取時,切勿使用,這一點很重要。這是因為許多不同的網路空間位置 (URL) 可以對應到相同的檔案系統位置,這允許您繞過限制。

代替使用 mod_rewrite 控制訪問,阿帕奇有直接存取控制指令。使用它們更加簡單,並使您的配置更易於閱讀和管理。這Require指示mod_authz_coreip

Require ip 192.0.2.100
Require ip 198.51.100.0/24
Require ip 2001:DB8:C0F:FEE::/64

相關內容