我有一個網址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:10004
和example.com
引用相同的目錄,並且兩者都使用 Apache 直接從檔案系統提供服務(即它不是反向代理),檔案系統上下文是一個不錯的選擇。從配置部分:什麼時候使用:
在檔案系統容器和網路空間容器之間進行選擇實際上非常容易。將指令套用至駐留在檔案系統中的物件時,請務必使用
<Directory>
或<Files>
。將指令套用至不駐留在檔案系統中的物件(例如從資料庫產生的網頁)時,請使用<Location>
.
<Location>
當嘗試限制對檔案系統中物件的存取時,切勿使用,這一點很重要。這是因為許多不同的網路空間位置 (URL) 可以對應到相同的檔案系統位置,這允許您繞過限制。
代替使用 mod_rewrite 控制訪問,阿帕奇有直接存取控制指令。使用它們更加簡單,並使您的配置更易於閱讀和管理。這Require
指示從mod_authz_core有ip
:
Require ip 192.0.2.100
Require ip 198.51.100.0/24
Require ip 2001:DB8:C0F:FEE::/64