Nếu bạn không sử dụng Xác thực HTTP với WordPress thì bạn có thể xóa nó.
Nếu bạn đang sử dụng PHP làm mô-đun Apache thì bạn có thể xóa nó. (Có thể WP phát hiện ra điều này khi nó tạo ra .htaccess
tập tin?)
Qua một bên: Tuy nhiên, vì lệnh này nằm trong khối mã WordPress (tức là giữa # BẮT ĐẦU WordPress
/ # HẾT WordPress
đánh dấu nhận xét) thì nếu bạn xóa nó thì WordPress sẽ chỉ "thử" và đặt lại sau. (Bạn nên tránh chỉnh sửa thủ công khối mã WP vì lý do này.)
Có chỉ thị này trong .htaccess
sẽ không gây ra bất kỳ vấn đề.
Khi PHP được cài đặt dưới dạng CGI thì Apache sẽ ngăn ủy quyền
Tiêu đề yêu cầu HTTP (được sử dụng với Xác thực HTTP) không được chuyển qua các tập lệnh CGI (tức là PHP trong trường hợp này). Đây là một "tính năng bảo mật" để ngăn thông tin đăng nhập của người dùng được chuyển đến tất cả các tập lệnh CGI (có thể không đáng tin cậy nếu bạn không kiểm soát máy chủ).
PHP thường đặt $_SERVER['HTTP_AUTHORIZATION']
superglobal (và các phần tử mảng được liên kết) khỏi tiêu đề Ủy quyền HTTP, nhưng nếu nó bị Apache loại bỏ thì không thể.
Các viết lại quy tắc
chỉ thị trong .htaccess
cố gắng "khắc phục" điều này bằng cách thiết lập một HTTP_AUTHORIZATION
biến môi trường thành giá trị của ủy quyền
Tiêu đề yêu cầu HTTP (đây là trước khi yêu cầu được chuyển đến PHP). PHP sau đó gán HTTP_AUTHORIZATION
env var đến $_SERVER
mảng siêu toàn cục. Vì vậy, về lý thuyết, nó đang làm điều tương tự. Tuy nhiên, tùy thuộc vào cấu hình máy chủ, điều này không nhất thiết phải hoạt động.
Ngoài ra, để cho phép rõ ràng "chuyển tiêu đề ủy quyền HTTP sang tập lệnh dưới dạng biến CGI", bạn có thể đặt CGIPassAuth Bật
(Apache 2.4.13+) trong .htaccess
và điều này sẽ cho phép PHP xem ủy quyền
tiêu đề. Tuy nhiên, tùy thuộc vào cấu hình máy chủ, điều này cũng có thể không hoạt động.
Thẩm quyền giải quyết: