Mật khẩu bảo vệ một thư mục, nhưng không phải các tập tin của thư mục đó?


8

Tôi chỉ tự hỏi liệu có thể bảo vệ một thư mục với sự kết hợp tên người dùng / mật khẩu bằng cách sử dụng các tệp .htaccess và .htpasswd, nhưng không bảo vệ các tệp trong đó. tức là One có thể liên kết, giả sử, hình ảnh trong thư mục đó với bạn bè, nhưng việc duyệt thư mục sẽ không được phép nếu không có tên người dùng / mật khẩu. Cảm ơn tất cả trước.

Câu trả lời:


9

Hãy thử điều này trong .htaccess:

Require valid-user

<Files ?*>
    Order allow,deny
    Allow from all
    Satisfy any
</Files>

Ở đây Require valid-useryêu cầu bất kỳ đăng nhập được biết đến. Sau đó, bạn sửa đổi hạn chế này đối với các tệp có ít nhất một ký tự trong tên của chúng - đây là mẫu hình cầu ?*cho <Files>phần sẽ khớp - có nghĩa là các quy tắc kèm theo áp dụng cho các tệp, nhưng không áp dụng cho các thư mục.

Trong các quy tắc sửa đổi cho các tập tin, chìa khóa là Satisfy any. Nó cho phép uỷ quyền để thỏa mãn bởi một trong hai chứng chỉ hoặc địa chỉ IP. Sau đó, bạn cho phép bất kỳ địa chỉ IP nào được chuyển qua, vì vậy các yêu cầu luôn được cấp phép.

Vì vậy, bây giờ duyệt thư mục này hoặc bất kỳ thư mục con nào của nó sẽ yêu cầu đăng nhập, nhưng trực tiếp lấy một tệp từ nó sẽ không.

Đó là những gì bạn muốn.


0

Có, bạn có thể bảo mật các tệp và thư mục theo tên hoặc mẫu. Bạn nên sử dụng điều này để hạn chế quyền truy cập vào các tệp .ht *. Kiểm tra cấu hình apache của bạn. Mẫu tệp được yêu cầu có thể sẽ là '/ $'.


0

Sử dụng LocationMatchđể giới hạn các công cụ auth vào chỉ mục thư mục.


<LocationMatch "/ hình ảnh"> AuthUserFile /home/asdasd/public_html/user5678/pictures/.htmlpasswd AuthgroupFile / dev / null AuthName "Giới hạn thư mục" AuthType Basic </ LocationMatch> Giới hạn < Đây là tệp .htaccess hiện tại của tôi, nằm trong / hình ảnh. Có điều gì đó tôi đang làm sai? Điều này dường như trả về 500 Lỗi Máy chủ Nội bộ.

a) đọc về LocationMatch, nó đòi hỏi một regex. b) Bạn cần phải đặt require valid-userbên trong LocationMatchkhối tất nhiên (tại sao lại Limittuyên bố?)
Marian

0

Bạn muốn tắt hiển thị Apache chỉ mục của thư mục. Đặt cái này trong .htaccess:

Options -Indexes

Bằng cách này khi Người dùng truy cập http://www.url.com/folder/, họ nhận được một danh sách từ chối lỗi. Nhưng khi họ truy cập http://www.url.com/folder/file.jpghọ có thể xem các tập tin.


1
Điều này không được hỏi, danh sách vô hiệu hóa này, không phải mật khẩu bảo vệ chúng
Krzysztof Bociurko

-1

Nếu bạn muốn danh sách thư mục chỉ hiển thị cho người dùng được tự động hóa nhưng cho phép mọi người tải xuống một tệp (để bạn có thể gửi liên kết cho mọi người), thì bạn cần một tập lệnh thuộc loại nào đó (PHP, ASP, v.v.) yêu cầu người dùng một mật khẩu và nếu họ nhận được nó sẽ hiển thị nội dung của thư mục. Bạn sẽ đặt tập lệnh này vào thư mục và đặt tên là index.php để nó được phục vụ thay vì apache tạo chỉ mục thư mục.


-1

Đúng. Thêm tệp index.html liệt kê nội dung của thư mục và hạn chế quyền truy cập vào tệp đó bằng .htaccess. Nếu bạn muốn chỉ mục động, bạn sẽ cần sử dụng một số loại tập lệnh (hoặc phía máy chủ bao gồm) để tạo chỉ mục.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.