2009-08-07 38 views

Trả lời

18

Tiêu đề không phải là điều cho Apache biết để hiển thị trang 404 của nó. Thay vào đó, khi Apache hiển thị trang 404 của nó, nó sẽ gửi tiêu đề 404 cùng với nó. Tiêu đề có ý nghĩa với trình duyệt , không phải máy chủ. Apache hiển thị 404 khi không thể tìm thấy tệp phù hợp để hiển thị. Vì bạn đang ở trong một tập lệnh PHP, Apache đã tìm thấy một tệp mà nó có thể hiển thị và do đó sẽ không hiển thị trang 404 của riêng nó.

7

Tiêu đề được gửi bởi PHP chỉ thực sự quan trọng đối với trình duyệt trong trường hợp này. Apache sẽ không tạo trang riêng vì bạn đã xử lý trang và nếu bạn gửi một cái gì đó, cả hai sẽ xung đột.

Có, tệp .htaccess sẽ ngăn Apache hiển thị trang lỗi vì quy tắc của bạn khiến Apache nghĩ rằng nó không còn lỗi 404 nữa vì nó đã tìm thấy trang để hiển thị.

Gửi tiêu đề thực sự chỉ là 'thông điệp trạng thái' và không làm cho trình duyệt hoặc máy chủ hiển thị một trang cụ thể. (Mặc dù hầu hết các trình duyệt sẽ).

Như Dav đã nêu trong các nhận xét, bạn sẽ muốn gửi lỗi 404 tới trang lỗi tùy chỉnh của riêng họ.

+2

Vì vậy, tôi nên chuyển hướng đến trang "không tìm thấy trang" của riêng mình? –

+4

Có, đó thường là những gì các ứng dụng PHP làm nếu họ muốn hiển thị một thông báo như vậy. – Amber

+1

Vui lòng không chuyển hướng. Nó làm cho nó khó khăn hơn nhiều để sửa lỗi chính tả. Chỉ cần phục vụ một trang 404 và đã thực hiện với nó. – TRiG

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