2009-02-27 27 views
14

Tôi muốn giới hạn toàn bộ trang web theo cách mà chỉ hai IP có thể truy cập trang web. Tôi có sau trong .htaccess của tôi (ở thư mục gốc của trang web):Hạn chế IP với htaccess

ErrorDocument 403 http://www.example.com/views/error403.html 

Order Deny,Allow 
Deny from all 
Allow from 311.311.311 322.322.322.322 

ErrorDocument 404 /views/error404.html 
ErrorDocument 500 views/error500.html 

(Rõ ràng, đây là những IP giả, trong .htaccess của tôi họ là quyền KCN)

Như bạn có thể thấy, Tôi chỉ cho phép 322.322.322.322 và tất cả các IP từ 311.311.311.0/24 và từ chối cho những người còn lại. Điều tôi muốn là khi bất kỳ ai nhập trang web từ một IP khác, anh ấy sẽ xem trang error403.html.

Bộ lọc hoạt động tốt nhưng không chuyển hướng. Khi tôi cố gắng nhập trang web từ một IP từ chối, tôi thấy một thông báo Apache:

Found 
The document has moved here 

Nơi "đây" là một liên kết đến error403.html.

Tôi nghĩ rằng tôi đang hạn chế ngay cả trang error403.html.

Làm cách nào để tôi có thể thực hiện hạn chế này, nhưng cho phép xem trang lỗi? Tôi có nên di chuyển error403.html trang đến một thư mục khác (tức là,/views/error /) và đặt các .htaccess khác trong đó, cho phép trong tệp đó tất cả các IP không?

Cảm ơn bạn trước!

Trả lời

10

Có, bạn đã trả lời câu hỏi của riêng bạn. :) Di chuyển tất cả các trang không được bảo vệ sang một thư mục khác với chính nó .htaccess chứa đúng AllowDeny.

+0

Tôi đã tự hỏi liệu có tồn tại một dạng giả khác để giải quyết vấn đề này không, nhưng bạn đã xác nhận sự nghi ngờ của tôi; Tôi sẽ làm điều đó với cặp thư mục-htaccess khác. Cảm ơn bạn Vlad! – ARemesal

+0

Bạn luôn có thể thực hiện điều này từ httpd.conf với các quy tắc fancier về thư mục nào bị ảnh hưởng và thư nào không, nhưng thật ra nó không đáng giá trừ khi bạn gặp vấn đề về hiệu năng với việc sử dụng .htaccess (bạn sẽ không trừ khi bạn phục vụ hàng trăm hoặc hàng ngàn yêu cầu mỗi giây.) – vladr

+0

Và trang web này được lưu trữ trong một máy chia sẻ nơi tôi không thể thay đổi httpd.conf, vì vậy giải pháp với .htaccess là hoàn hảo cho việc này. – ARemesal

Các vấn đề liên quan