Ip
Apache 2.4 將 URL 限制為某些 IP
我正在嘗試將特定 URL 限制為僅在特定 IP 地址之外的網路可用。當外部使用者嘗試訪問該 URL 而不是從 IP 列表中時,他應該被重定向到首頁。
這是我到目前為止沒有任何運氣的嘗試。最後一部分將所有人重定向到首頁,而不管 IP 是什麼。
<Location "/secret"> # <If "%{REMOTE_ADDR} != -ipmatch '123.123.123.123/255.255.255.255'"> # Redirect 303 "/secret" / # </If> RewriteCond "%{REMOTE_ADDR}" "!123\.123\.123\.123" RewriteRule .* / [R,L] LogLevel debug rewrite:trace6 </Location>
PS:/secret URL 實際上是一個虛擬 URL,並不存在於驅動器上。
使用
Order
,Deny
和allow
指定誰有權訪問您的虛擬主機或位置。<VirtualHost *:80> ServerName example.net DocumentRoot /docroot <Directory "/docroot"> Order Deny,Allow Deny from all Allow from 10.10.10.10 Allow from 10.10.11.0/24 </Directory> </VirtualHost>
當涉及到重定向時,請考慮自定義錯誤頁面。這更普遍,因為每次未經授權的訪問都會引發 403 錯誤,因此可以輕鬆評估。
我從來沒有用 apache 做過這個,但是用 nginx 使用這個策略。對於 apache,這樣的事情應該這樣做:
ErrorDocument 403 http://homepage.example.com
使用 ErrorDocument 指令配置自定義錯誤文件,該指令可用於全域、虛擬主機或目錄上下文。如果 AllowOverride 設置為 FileInfo,它可以在 .htaccess 文件中使用。(來自 apache 文件)