2012-01-10 41 views
12

Tôi muốn chặn quyền truy cập vào "sub/folder/index.php", nhưng không chặn "index.php" ở bất kỳ nơi nào khác..htaccess từ chối các tệp trong các thư mục con

<Files index.php> 
    Order allow,deny 
    Deny from all 
</Files> 

hoạt động nhưng chặn tất cả các tệp "index.php".

<Files sub/folder/index.php> 
    Order allow,deny 
    Deny from all 
</Files> 

không hoạt động. Tôi có cần sử dụng <Directory> không?

Tôi không muốn tạo một file .htaccess trong sub/thư mục

Tôi không có quyền truy cập vào httpd.conf

Tôi không muốn chặn tất cả mọi thứ trong tiểu/thư mục

Nếu nó được dễ dàng, tôi sẽ không được hỏi;)

Trả lời

23

Tôi nghĩ quy tắc đơn giản nhất là:

RedirectMatch 403 ^.*/sub/folder/index\.php$ 

RedirectMatch là trong mô-đun mod_alias, mà bạn chắc chắn có. Điều này không ngụ ý công cụ mod_rewrite. Ở đây chúng tôi chỉ đơn giản là nói với apache rằng bất kỳ truy cập vào sub/folder/index.php sẽ tạo ra một câu trả lời "403 bị cấm".

Bạn có thể đặt trong httpd.conf hoặc trong thư mục gốc .htaccess (nhưng thực sự xem xét việc xóa tất cả .htaccess, rất tệ, chậm, rất tiếc là bạn không có quyền truy cập vào tệp cấu hình thực).

+0

Công trình này hoạt động! Rõ ràng 'RedirectMatch' được xử lý riêng biệt từ' RewriteRule' – Halcyon

+0

Nếu bạn muốn vô hiệu hóa quyền truy cập vào mọi tệp trong mỗi thư mục con, hãy làm như sau: RedirectMatch 403 ^. */*/* \. * $ –

+0

Miha, tôi nghĩ rằng quy tắc tốt nhất cho tất cả các tệp sẽ chỉ đơn giản là/* $ ở cuối, cách này các tệp không có dấu chấm cũng sẽ áp dụng cho quy tắc này – Arruda

1

Làm thế nào về việc tạo ra một .htaccess tệp trong thư mục cụ thể chứa các tệp bạn muốn bảo vệ?

Edit:

Hãy cẩn thận, điều này thực sự không làm việc trong một tập tin đơn giản .htaccess, xem ý kiến ​​dưới đây. Điều này sẽ chỉ làm việc trong một tập tin apache.conf.

này nên để các trick cho bạn mà không cần tập tin khác .htaccess:

<Directory sub/folder> 
    <Files index.php> 
    Order allow,deny 
    Deny from all 
    </Files> 
</Directory> 
+0

Tôi không muốn làm điều đó tất nhiên, vì những lý do nằm ngoài phạm vi của câu hỏi này. – Halcyon

+1

Sau đó, có, bạn sẽ cần phải áp dụng quy tắc directoy. Tôi sẽ chỉnh sửa câu trả lời :) – bardiir

+2

Ồ, chỉ vấp khi điều này chỉ hoạt động trong các tệp apache.conf chứ không phải các tệp .htaccess ... xem http://httpd.apache.org/docs/1.3/howto/ htaccess.html – bardiir

2

tôi cố gắng tạo .htaccess khác ở chỗ phụ/thư mục/chặn truy cập vào index.php đó.

"Nếu bạn đặt một tệp .htaccess trong một thư mục con, các chỉ thị của nó sẽ ghi đè các tệp bạn có trong thư mục chính của trang web của bạn."

Trang này có thêm thông tin: http://www.besthostratings.com/articles/htaccess.html

+2

Bài viết bạn đã liên kết hữu ích nếu đây là lần đầu tiên bạn nghe về khái niệm '.htacess'. Không hữu ích ở đây. – Halcyon

+0

Câu hỏi của bạn vào thời điểm đó không cho biết bạn có mới tất cả các khả năng bạn có với htaccess hay không, đó là lý do tại sao tôi đưa cho bạn một liên kết như vậy. – AKFourSeven

0

Bạn chỉ có thể sử dụng tên tập tin trong < Files> phần, chứ không phải con đường.

Có ba tùy chọn tôi có thể thấy;

  • Đặt tệp .htaccess vào cùng thư mục với tệp.
  • Đặt cấu hình trong apache.conf bằng cách sử dụng chỉ dẫn < Thư mục> chỉ thị và < Tệp> chỉ thị. < Thư mục> không hoạt động trong các tệp .htaccess, chỉ apache.conf
  • Tạo quy tắc ghi lại bằng cách sử dụng mod_rewrite a'la;

-

RewriteEngine on 
RewriteRule ^sub/folder/index.php$ http://yoursite/index.locked 

Sẽ cung cấp cho 404 vào file, nếu bạn muốn có một sự cho phép từ chối, tạo ra một đọc tập tin được bảo vệ tại nhọn vào vị trí.

+0

Điều thứ hai cũng đáng tin cậy;) – Halcyon

+1

Ok, đã thêm một phần ba :) –

+0

Tôi đã chơi với điều này và nó sẽ hoạt động, chỉ thư mục con chứa tệp .htaccess cũng như với RewrieRules. Vì vậy, tôi cần 'RewriteOptions inherit' và một' RewriteBase' decleration trong parent nhưng tôi không thể cung cấp bởi vì môi trường của tôi là động. Tôi luôn luôn tìm thấy nó tuyệt vời như thế nào hoàn toàn vô ích .htaccess là khi bạn có cấu trúc mô-đun. – Halcyon

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