Tôi đã đặt câu hỏi này trên Twitter và yêu cầu phản hồi từ một số nhà phát triển cốt lõi khác. Bản năng ruột của tôi là làm cho $current_url
có thể lọc hoặc được tạo bởi một chức năng có thể bị ghi đè. Đây rõ ràng là cách sai về nó.
@markoheijnen :
@EricMann Đặt lại$_SERVER['HTTP_HOST']
âm thanh như một giải pháp hackish. Cùng một mã sau đó có thể có trong wp-config.php
@Nacin :
@EricMann @markoheijnen Đưa nó vào wp-config là đúng. Đây không phải là công việc của WP để xử lý các tình huống proxy ngược.
@EricMann @markoheijnen Tốt nhất, chúng nên được đặt đúng trước khi WP (hoặc thậm chí PHP) được tải. wp-config là lựa chọn thay thế.
@markoheijnen :
@nacin @ericmann Trong trường hợp này, máy chủ / proxy bị cấu hình sai. Vì vậy, tôi có thể thấy lý do tại sao nó nên được sửa trong wp-config
Từ những âm thanh của sự hội tụ này, bạn có hai lựa chọn:
- Định cấu hình lại proxy của bạn để đặt các giá trị máy chủ chính xác trước khi mọi thứ đến với PHP / WP.
- Làm sạch thủ công và thiết lập
$_SERVER['HTTP_HOST']
trong wp-config.php
tập tin của bạn .
Tôi đã suy nghĩ thêm một chút và đây là một số mã thực tế bạn có thể thêm vào wp-config.php
để thiết lập mọi thứ (dựa trên bản vá lỗi thay đổi các tệp cốt lõi):
if ( ! empty( $_SERVER['HTTP_X_FORWARDED_HOST'] ) ) {
$_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST'];
}
Điều này sẽ thiết lập mọi thứ sao cho các tệp lõi mặc định không cần bất kỳ sửa đổi nào để hoạt động chính xác. Nhưng xin lưu ý rằng tôi không thể kiểm tra điều này vì tôi không có bất kỳ loại thiết lập proxy nào để xác minh nó ... vì vậy nếu mã này không giúp khắc phục tình trạng của bạn, vui lòng báo cáo lại và chúng tôi có thể thử cách khác.