- Có cách nào để thay thế: AuthUserFile với chính mật khẩu? Tôi đã tạo sẵn nó trong tập lệnh PHP của mình rồi.
- HOẶC làm cách nào tôi có thể tham chiếu tệp .htpasswd trong cùng thư mục. Thực hiện các thao tác sau không hiệu quả: AuthUserFile './htpasswd'
Thật không may, bạn không thể làm những điều này. AuthUserFile
(nghĩa là xác thực HTTP) yêu cầu đường dẫn tệp tuyệt đối (hoặc đường dẫn tương đối đến Máy chủRoot
) và Biểu thức Apache cú pháp không được hỗ trợ để tạo AFAIK "động" này (giống như với một số lệnh khác trong Apache 2.4, vd. LỗiTài Liệu
).
Tuy nhiên, vì bạn đang tạo các thư mục nên có lẽ bạn có thể tạo các .htaccess
(?) tập tin và tương ứng .htpasswd
tập tin cho mỗi thư mục? Tuy nhiên, .htpasswd
tập tin nên chẳng bao giờ được lưu trữ trong thư mục mà chúng đang bảo vệ hoặc thậm chí trong không gian HTML công khai. Chúng nên được lưu trữ bên ngoài cây thư mục chung, phía trên thư mục gốc của tài liệu. (Và có lẽ ban đầu bạn muốn tránh nhiều .htaccess
tập tin, mặc dù với của bạn gợi ý Tôi không chắc lắm?)
Ngoài ra, vì bạn đã sử dụng PHP để tạo các thư mục này và tập lệnh PHP của bạn đã biết các mật khẩu có liên quan, vậy tại sao bạn không sử dụng PHP để quản lý quyền truy cập vào các tệp CSV?
Ví dụ:
Sử dụng Apache mod_rewrite để viết lại nội bộ yêu cầu cho bất kỳ "được bảo vệ" nào .csv
tập tin vào một tập lệnh PHP. Ví dụ:
Viết LạiEngine Trên
# Tất cả các yêu cầu đối với tệp ".csv" trong cây thư mục "/foo/" được chuyển đến "/serve-csv.php"
RewriteRule ^/?foo/.+\.csv$ /serve-csv.php [L]
Tập lệnh PHP biết tệp đang được yêu cầu (ví dụ:. $_SERVER['REQUEST_URI']
) và người dùng/mật khẩu được phép truy cập tệp này.
PHP có thể quản lý Xác thực cơ bản HTTP (điều đó bạn dường như đang sử dụng) hoặc triển khai giao diện xác thực của riêng bạn (biểu mẫu HTML, v.v.)
Nếu người dùng được xác thực thì PHP sẽ đọc tệp được yêu cầu và cung cấp tệp này cho máy khách.