Có một vài phương pháp có thể để điều này, nhưng tôi sẽ làm một trong các cách sau:
Bạn có thể sử dụng mod_rewrite
, theo đề nghị của @LazyOne, để chuyển hướng chỉ tập tin có phần mở rộng .php
vào tài liệu tùy chỉnh của bạn:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f # Only redirect to error for files that don't exist
RewriteRule ^(.*)\.php$ /404.php [L]
hoặc bạn có thể hướng tất cả mọi thứ thông qua việc xử lý lỗi PHP như bạn đã làm, và sử dụng PHP để xác định xem các tài nguyên được yêu cầu là một kịch bản PHP hay không:
<?php
if (strtolower(substr($_SERVER['SCRIPT_URL'], -4)) != '.php') {
// If the requested resource does not have a .php extension, include the standard error doc and exit
include '404.html';
exit;
}
// Handle .php 404s here
Điểm bất lợi của phương pháp thứ hai này là bạn có thể cần phải viết lại tài liệu lỗi chuẩn để nó sử dụng PHP để nhận thông tin động để hiển thị cho người dùng, và đường dẫn tài nguyên được yêu cầu.
ý của bạn là gì "có mọi thứ"? 404 là mã phản hồi cho bất kỳ yêu cầu HTTP nào không tìm thấy, bất kể đó là yêu cầu php hoặc hình ảnh. –
ý tôi là nếu tôi làm www.example.com/img/errorimg.jpg anh ấy sẽ dẫn tôi đến www.example.com/404.php và tôi không muốn ... – user1040899
Bạn có thể thử thực hiện điều này với URL Rewriting (mod_rewrite) - yêu cầu chuyển hướng đến bất kỳ tệp .php không tồn tại nào cho 404.php tùy chỉnh của bạn - có thể (chỉ 3 hoặc 4 dòng) – LazyOne