2011-07-28 35 views
11

Tôi cần mật khẩu bảo vệ thư mục bằng .htaccess, mà tôi đã thực hiện thành công. Nhưng phần đầu của trang web được lập trình để liên kết tới hình ảnh trong thư mục được bảo vệ bằng mật khẩu này (không phải bởi tôi), nhưng khi một trang web cố truy cập những hình ảnh đó, nó sẽ nhắc người dùng đăng nhập..htaccess mật khẩu bảo vệ thư mục nhưng cho phép loại tệp hình ảnh

Có thể mật khẩu bảo vệ thư mục đó, nhưng cho phép bất kỳ quyền truy cập vào bất kỳ loại tệp hình ảnh nào như * .jpg và * .gif?

đang .htaccess hiện tại của tôi là thế này:

AuthName "Secure Area" 
AuthUserFile "/home/siteuser/.htpasswds/public_html/admin/passwd" 
AuthType Basic 
require valid-user 

Nhờ sự giúp đỡ!

Trả lời

14
AuthName "Secure Area" 
AuthUserFile "/home/siteuser/.htpasswds/public_html/admin/passwd" 
AuthType Basic 
require valid-user 
<FilesMatch "\.(png|jpe?g|gif)$"> 
    Satisfy Any 
    Allow from all 
</FilesMatch> 

Chỉnh sửa để kết hợp cải thiện Shef của

+1

+1. Ngắn & ngọt! Mặc dù regex nên được thay đổi để chỉ khớp từ cuối chuỗi 'FilesMatch '\. (Png | jpe? G | gif) $" '. – Shef

+0

Tuyệt vời, điều này làm việc một cách hoàn hảo, cảm ơn! – Kevin

0

Bạn đã thử đặt bên trong Filematch chưa?

<FilesMatch "^.*(png|jpe?g|gif)$"> 
AuthName "Secure Area" 
AuthUserFile "/home/siteuser/.htpasswds/public_html/admin/passwd" 
AuthType Basic 
require valid-user 
</FilesMatch> 
+1

này sẽ không hoạt động. nó đóng chặt hình ảnh nhưng KHÔNG phải các tài liệu khác. Đối diện với những gì OP muốn – genesis

-1

gì bạn có thể thử là viết một proxy hiển thị hình ảnh:

  • Giữ thư mục như bạn có nó bây giờ, với mật khẩu bảo vệ.
  • Trên .htaccess trên thư mục gốc của trang web nơi hình ảnh được liên kết, thêm quy tắc Ghi lại cho những loại hình ảnh bạn muốn. Quy tắc này sẽ chuyển hướng cuộc gọi đến một tập lệnh xử lý PHP.
  • Kịch bản đó nên đánh giá đường dẫn đã được yêu cầu, tải tệp từ hệ thống tệp, khấu trừ tiêu đề của nó và gửi cho khách hàng bằng cách sử dụng header(), theo sau là nội dung của tệp hình ảnh echo file_get_contents().

PHP không bị ảnh hưởng bởi .htaccess để nó có thể đọc tệp bạn cần và proxy cho tệp người dùng cuối.

1

Bạn có thể kiểm tra tất cả các tùy chọn khác nhau về cấu hình .htaccess mang đến cho bạn trong trang web sau đây:

Stupid htaccess Tricks

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