Hướng dẫn php header 404

.Htaccess của tôi chuyển hướng tất cả các yêu cầu /word_heređến /page.php?name=word_here. Tập lệnh PHP sau đó kiểm tra xem trang được yêu cầu có nằm trong mảng các trang không.

Nếu không, làm thế nào tôi có thể mô phỏng một lỗi 404? Tôi đã thử điều này, nhưng nó không dẫn đến trang 404 của tôi được định cấu hình ErrorDocumenttrong khi .htaccesshiển thị.

header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");

Tôi có đúng không khi nghĩ rằng việc chuyển hướng đến trang 404 lỗi của tôi là sai?

  • php
  • redirect
  • http-status-code-404

81 hữu ích 2 bình luận 146k xem chia sẻ

answer

104

Hướng dẫn php header 404

Câu trả lời cập nhật (kể từ PHP 5.4 trở lên) để tạo các trang 404 là sử dụng http_response_code:

<?php
http_response_code(404);
include('my_404.php'); // provide your own HTML for the error page
die();

die() không thực sự cần thiết, nhưng nó đảm bảo rằng bạn không tiếp tục thực hiện bình thường.

104 hữu ích 2 bình luận chia sẻ

answer

78

Hướng dẫn php header 404

Những gì bạn đang làm sẽ hoạt động và trình duyệt sẽ nhận được mã 404. Những gì nó sẽ không làm là hiển thị trang "không tìm thấy" mà bạn có thể mong đợi, ví dụ:

Không tìm thấy

URL /test.php được yêu cầu không tìm thấy trên máy chủ này.

Đó là bởi vì máy chủ web không gửi trang đó khi PHP trả về mã 404 (ít nhất là Apache không). PHP chịu trách nhiệm gửi tất cả đầu ra của chính nó. Vì vậy, nếu bạn muốn có một trang tương tự, bạn sẽ phải tự gửi HTML, ví dụ:

<?php
header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found", true, 404);
include("notFound.php");
?>

Bạn có thể định cấu hình Apache để sử dụng cùng một trang cho các thông điệp 404 của riêng mình, bằng cách đặt trang này vào httpd.conf:

ErrorDocument 404 /notFound.php

78 hữu ích 3 bình luận chia sẻ

answer

22

Hướng dẫn php header 404

Thử đi:

<?php
header("HTTP/1.0 404 Not Found");
?>

22 hữu ích 4 bình luận chia sẻ

answer

7

Hướng dẫn php header 404

Tạo các trang lỗi tùy chỉnh thông qua tệp .htaccess

1. 404 - không tìm thấy trang

 RewriteEngine On
 ErrorDocument 404 /404.html

2. 500 - Lỗi máy chủ nội bộ

RewriteEngine On
ErrorDocument 500 /500.html

3. 403 - Cấm

RewriteEngine On
ErrorDocument 403 /403.html

4. 400 - Yêu cầu xấu

RewriteEngine On
ErrorDocument 400 /400.html

5. 401 - Yêu cầu ủy quyền

RewriteEngine On
ErrorDocument 401 /401.html

Bạn cũng có thể chuyển hướng tất cả lỗi sang một trang. như

RewriteEngine On
ErrorDocument 404 /404.html
ErrorDocument 500 /404.html
ErrorDocument 403 /404.html
ErrorDocument 400 /404.html
ErrorDocument 401 /401.html

7 hữu ích 0 bình luận chia sẻ

answer

3

Hướng dẫn php header 404

Bạn có nhớ chết () sau khi gửi tiêu đề? Tiêu đề 404 không tự động dừng xử lý, do đó có vẻ như nó chưa làm gì nếu có quá trình xử lý tiếp theo xảy ra.

Thật không tốt khi GIẢM vào trang 404 của bạn, nhưng bạn có thể BAO GỒM nội dung từ đó mà không gặp vấn đề gì. Bằng cách đó, bạn có một trang gửi đúng trạng thái 404 từ URL chính xác, nhưng nó cũng có "bạn đang tìm gì?" trang cho người đọc.

3 hữu ích 0 bình luận chia sẻ

answer

0

Hướng dẫn php header 404

thử đặt

ErrorDocument 404 /(root directory)/(error file) 

trong .htaccesstập tin

Làm điều này cho bất kỳ lỗi nhưng thay thế 404 cho lỗi của bạn.

0 hữu ích 0 bình luận chia sẻ

answer

0

Hướng dẫn php header 404

Trong Wordpress, nếu bạn đang cố gắng làm cho một số mã php tùy chỉnh dường như không tồn tại (trừ khi một số điều kiện được đáp ứng), thì điều sau đây hoạt động tốt bằng cách xử lý trình xử lý Wordpress 404 tiêu chuẩn:

<?php
  if(condition){
    do stuff;
  } else {
    include('index.php');
  }
?>

0 hữu ích 0 bình luận chia sẻ

Hướng dẫn php header 404

Đăng nhập để trả lời câu hỏi

Có thể bạn quan tâm

Hướng dẫn php header 404