WordPress xử lý permalinks như thế nào?


11

WordPress tự động sửa các permalinks (URL) ngay cả khi nó được nhập không chính xác. Ví dụ: WordPress sẽ đưa bạn đến example.com/some-postngay cả khi bạn nhập example.com/idontexist/some-posthoặc thậm chíexample.com/some

Có thể là, WordPress sử dụng RegEx like hoặc một số thuật toán phù hợp so sánh từ phải sang trái và nếu tìm thấy kết quả khớp, nó sẽ đưa bạn đến trang ngay cả khi có /.*/bên trái. Chỉ là một phỏng đoán! Làm thế nào để WordPress làm điều này?

Chỉnh sửa: Tôi cũng nhận thấy rằng các kiểm tra tập tin .htaccess cho ảo tập tin / thư mục sử dụng !f!dvà chuyển hướng yêu cầu đến index.php vào thư mục blog.

Câu trả lời:


6

Hàm redirect_canonical trong /wp-includes/canonical.php được gọi trên bất kỳ URL cụ thể nào và sẽ cố gắng đoán chính xác nhất URL mà người dùng muốn và chuyển hướng chúng đến đó, khi URL không tồn tại. Nó có một số lượng lớn mã để làm điều này cho tất cả các loại lỗi phổ biến.


1
Được nâng cấp cho "toàn bộ số tiền rất lớn": D.
Travis Northcutt


1

Nó khá đơn giản. WordPress sử dụng toán tử THÍCH trong truy vấn SQL để đoán URL hoàn chỉnh từ URL một phần khi đó là trang 404

Kiểm tra mã này được lấy từ redirect_guess_404_permalink()hàm /wp-includes/canonical.php

$where = $wpdb->prepare( 'post_name LIKE %s', $wpdb->esc_like( get_query_var( 'name' ) ) . '%' );
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.