السلام عليكم
لدي مجلد اسمه api به ملف index و 404.php
اريد تخصيص 404.php كصفحة خطأ عند الدخول للاي امتداد داخل المجلد
مثلا
domain. com/api/fkdkkd
جربت هذا ولم يعمل
ErrorDocument 404 /error.php
من أجل القيام بتخصيص صفحة 404 لمجلدك، يمكنك استخدام ملف .htaccess إذا كنت تستخدم خادم ويب يعمل بـ Apach مثلا ففي هذا الملف، يمكنك تعيين ErrorDocument ليشير إلى ملف 404.php داخل المجلد الذي تريد.
يمكنك ذلك من خلال اتباع هاته النقاط، في ملف .htaccess، يمكنك إضافة السطر التالي:
ErrorDocument 404 /api/404.php
وهذا يعني أنه عندما يحدث خطأ 404 داخل مجلد api، سيتم توجيه المستخدم إلى الملف 404.php داخل المجلد api.
لكن يجب أن تتأكد من حفظ الملف .htaccess في المسار الصحيح، والتأكد أيضًا من أن خادم الويب يسمح بقراءة ملف .htaccess وتطبيق الإعدادات الموجودة فيه.
يوجد أكثر من طريقة، وإحداها هي بإضافة السطر التالي في ملف .htaccess في مجلد api:
ErrorDocument 404 /404.php
ويُستخدم التوجيه ErrorDocument 404 /error.php لتوجيه المستخدم إلى صفحة 404.php عند طلب أي ملف غير موجود على مستوى الخادم، وانت تريد فقط توجيه المستخدم إلى صفحة 404.php عند طلب ملف غير موجود داخل مجلد api.
الطريقة الأخرى هي باستخدام ملف index.php لتوجيه المستخدم إلى صفحة 404.php عند طلب أي ملف غير موجود.
حيث نكتب التالي في ملف index.php:
<?php if (!file_exists($_SERVER['REQUEST_URI'])) { header('Location: 404.php'); exit(); } ?>
لكي تستطيع فعل هذه الميزه يجب اولا يكون لديك هذه الصفحه دعنا نسميها 404.php ونضع هذه الكود البسيط لعرض رسالة الخطاء
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>404 Not Found</title> </head> <body> <h1>404 Not Found</h1> <p>The page you are looking for could not be found.</p> </body> </html>
ثما في ملف .htaccess ضع هذه الكود
ErrorDocument 404 /404.php <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ /index.php [L] </IfModule>
بهذه الطريقه تكون استطعت ان تخصص صفحة الخطاء
يمكنك استخدام ملف htaccess إذا كنت تستخدم خوادم ويب تدعم Apache لقمت بمحاولة استخدام ErrorDocument يبدو هناك اسم ملف خاطئ يجب استخدام اسم الملف الصحيح الذي هو 404.php
استخدام الكود التالي في ملف .htaccess داخل المجلد الرئيسي api لتوجيه الطلبات ذات الامتداد غير الموجودة إلى 404.php
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase /api/ # إذا كان الملف أو الدليل موجودًا، لا تقوم بأي إعادة توجيه RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # إعادة توجيه الطلبات ذات الامتداد غير الموجودة إلى 404.php RewriteRule ^([^/]+)$ 404.php [L] </IfModule>
التعليقات