.htaccess و errordocument المخصصة لأنواع الملفات المختلفة

StackOverflow https://stackoverflow.com/questions/2137912

سؤال

أتساءل عما إذا كان من الممكن استخدام إعادة كتابة MOD جنبًا إلى جنب مع تباطؤ ErrorDocument لتخصيص صفحات الخطأ اعتمادًا على نوع الملف المطلوب.

على سبيل المثال ، يُطلب من ملف HTML أو PHP غير موجود أن يعطي Apache صفحة HTML مخصصة.

ولكن إذا تم طلب صورة غير موجودة ، JS ، CSS ، إلخ ... ، فإن Apache ستقدم ملف HTML أساسي مع رابط فقط عليه.

مثال جيد على هذا السلوك هو Facebook. حاول طلب ملف JavaScript الزائف ، ستتلقى صفحة مختلفة ، ثم إذا كنت تريد طلب ملف PHP غير موجود.

هل كانت مفيدة؟

المحلول

انتهى الأمر باستخدام مزيج من كل من ErrorDocument وإعادة كتابة هذا يعمل لأن صفحة PHP ترمي 404 لم يتم العثور عليها بالنسبة لي.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .*(?<!.js|.css|.ico|.txt|.bmp|.gif|.png|.jpeg|.jpg)$ /error/404.php [L]

ErrorDocument 404 /404_basic.html

نصائح أخرى

يستخدم RewriteCond !-f جنبا إلى جنب مع إعادة كتابة إلى صفحة الإخراج المطلوبة وعلم من R=404.

يمكنك استخدام برنامج نصي PHP لصفحة 404:

ErrorDocument 404 /error404.php

هناك يمكنك تحليل مسار عنوان URL مع PHP (انظر $_SERVER['REQUEST_URI']) وتحديد نوع الموارد المطلوبة أو المتوقع.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top