هل يتعين عليك إعادة تشغيل Apache حتى تصبح قواعد إعادة الكتابة في ملف .htaccess نافذة المفعول؟

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

سؤال

لقد قمت بدفع ملفات .htaccess الخاصة بي إلى خوادم الإنتاج، لكنها لا تعمل.هل ستكون إعادة التشغيل هي الخطوة التالية أم يجب أن أتحقق من شيء آخر.

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

المحلول

إعادة التشغيل هي لا مطلوب لإجراء تغييرات على .htaccess.هناك شيء آخر خاطئ.

تأكد من أن ملف .htaccess الخاص بك يتضمن البيان

إعادة كتابة المحرك قيد التشغيل

وهو مطلوب حتى لو كان موجودًا أيضًا في httpd.conf.تأكد أيضًا من أن ملف .htaccess قابل للقراءة من خلال عملية httpd.
تحقق من error_log - سيخبرك بأي أخطاء في .htaccess لو يتم استخدامه.يعد وضع خطأ متعمد في بناء الجملة في .htaccess بمثابة فحص جيد للتأكد من استخدام الملف - يجب أن تحصل على خطأ 500 في أي صفحة في نفس الدليل.

وأخيرًا، يمكنك تمكين سجل إعادة الكتابة باستخدام أوامر مثل ما يلي في httpd.conf:

إعادة كتابة السجل "سجلات/إعادة كتابة السجل"

إعادة كتابة السجلالمستوى 7

سيعطيك ملف السجل الذي تم إنشاؤه على هذا النحو تفاصيل دموية عن قواعد إعادة الكتابة المطابقة وكيفية التعامل معها.

نصائح أخرى

لا:

يسمح Apache بالإدارة اللامركزية للتكوين عبر ملفات خاصة موضوعة داخل شجرة الويب.عادة ما يتم استدعاء الملفات الخاصة .htaccess, ، ولكن يمكن تحديد أي اسم في اسم ملف الوصول توجيه...وبما أن ملفات htaccess تتم قراءتها عند كل طلب، فإن التغييرات التي يتم إجراؤها على هذه الملفات تصبح نافذة المفعول على الفور...

من وثائق أباتشي:تكمن المشكلة الأكثر شيوعًا في عدم تعيينAllowOverride بحيث يتم احترام توجيهات التكوين الخاصة بك.تأكد من عدم وجود خيار "AllowOverride none" ساري المفعول لنطاق الملف المعني.الاختبار الجيد لذلك هو وضع البيانات المهملة في ملف .htaccess الخاص بك وإعادة تحميله.إذا لم يتم إنشاء خطأ في الخادم، فمن المؤكد تقريبًا أن الخيار "AllowOverride None" ساري المفعول.

فقط إذا كان لديك لا تمت إضافة وحدة mod_rewrite إلى Apache.

ما عليك سوى إعادة تشغيل Apache إذا قمت بتغيير أي من ملفات Apache ".conf".

لدي نفس المشكلة ويبدو أن منشور PiedPiper حولallowOverride كان مفيدًا للغاية.تحقق من ملف httpd.conf بحثًا عن "AllowOverride" وتأكد من ضبطه على الكل.

في حالة إعادة تشغيل .htaccess، لا يلزم الأمر إذا كان لا يعمل، وتشمل الأسباب المحتملة.

  • السماح بالتجاوز قد لا يتم تعيين المستخدم الذي يمكنه تعيينه داخل httpd.conf أو قد يتعين عليه الاتصال بمسؤول الخادم.

  • تحقق من اسم الملف .htaccess، فيجب أن يكون .htaccess وليس htaccess.txt هنا للحصول على دليل كيفية إنشاء واحدة.

  • حاول استخدام Options -Indexes أو deny all نوع من التوجيه البسيط لمعرفة ما إذا كان يعمل أم لا.

  • امسح ذاكرة التخزين المؤقت للمتصفح في كل مرة إذا كانت هناك قاعدة لعمليات إعادة التوجيه أو ما شابه ذلك، إذا تم تخزين عملية إعادة التوجيه السابقة مؤقتًا، فسيبدو كما لو أن الأمور لا تعمل.

ماذا يوجد في ملف htaccess الخاص بك؟إعادة كتابة القواعد؟تأكد من تثبيت mod_rewrite وتمكينه.

اشياء اخرى؟حاول تعيين السماح بالتجاوز على "الكل" في هذا الدليل.

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