كيف يمكنني الحصول على mod_rewrite للعمل في الدليل الرئيسي؟
سؤال
لدي ملفات PHP المخزنة ضمن FreeBSD ضمن هذا الدليل:
/home/david/public_html/code/php
في متصفحي، يمكنني الوصول إليها من خلال عنوان URL هذا:
http://192.168.6.7/~david/code/php
ولدي ملف HTACCESS لإعادة كتابة عناوين URL:
RewriteEngine on
RewriteRule ^test test.php
ولكن عندما أذهب إلى http://192.168.6.7/~David/code/php/test. في متصفحي، أحصل على هذا الخطأ:
Not Found
The requested URL /home/david/public_html/code/php/test.php
كما ترون، فإن قاعدة إعادة الكتابة ناجحة في محاولة إعادة توجيه اختبار إلى Test.php. ولكن لسبب ما فشل.
لقد وجدت هذا في ملف سجل خطأ Apache الخاص بي:
File does not exist: /usr/local/www/data/home
أي شخص يعرف كيفية إصلاح هذا؟ بالمناسبة، إذا وضعت هذا في دليل ويب وليس دليل منزلي، كل شيء يعمل بشكل جيد.
المحلول
اضبط مسار URL الأساسي /~david/code/php/
مع RewriteBase
:
RewriteBase /~david/code/php/
يجب عليك أيضا أن توضح UseDir
ل public_html
. وبعد أنظر أيضا أدلة الويب لكل مستخدم في دليل Apache.
لا تنتمي إلى StackOverflow