كيف يمكنني الحصول على mod_rewrite و mod_alias للعمل معًا؟
-
30-09-2019 - |
سؤال
لديّ بيئة Windows/Apache/PHP تم إعدادها لتقليد حساب استضافة مشترك ولكن لا يمكنني الحصول عليها mod_alias
و mod_rewrite
للعب بشكل جيد مع بعضها البعض. يتم تمكين كلاهما بالتأكيد على مستوى الخادم وعلى أساس لكل موقع.
أملك d:\web\public_html\
تم إعداده كـ documentRoot. لكن بشكل عام سيكون فارغًا.
أملك d:\web\sites\
وهو المكان الذي سأخزن فيه مواقعاتي وأشير إلى استخدامها Alias
ولديه بنية الدليل التالية تحتها:
d:\web\sites\alfa d:\web\sites\alfa\public_html d:\web\sites\bravo d:\web\sites\bravo\public_html
لقد تم إعداد الأسماء المستعارة على النحو التالي: (وهي تعمل بالتأكيد!)
Alias /alfa d:/web/sites/alfa/public_html<Directory "D:\web\sites\alfa\public_html">
Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all</Directory>
ال public_html
المجلد (المجلد) حيث كل موقع .htaccess
يتم تخزين الملفات ولديها بالتأكيد mod_rewrite
ممكّن ولكن لن يعمل بشكل صحيح.
حتى الآن لم أتمكن من الانهيار مع ماذا RewriteBase
يجب ان يكون. لقد حاولت /
, /alfa
, /alfa/
و alfa/
. لقد حاولت حتى d:\web\sites\alfa\public_html
, d:/web/sites/alfa/public_html
, d:\web\sites\alfa
و d:/web/sites/alfa
ولكن دون جدوى!
هل هذا ممكن؟ إذا كان الأمر كذلك ، ماذا أفعل خطأ؟
من الواضح أنني أود الاحتفاظ بي Alias
توجيهات مركزية وب RewriteRule
S في كل موقع .htaccess
الملفات.
المحلول
أنت تستخدم
AllowOverride None
التوجيه وبالتالي تعطيل أي .htaccess
الملفات في الدليل المستعار. أزل ذلك ، ويجب أن يعمل.
/
يجب أن تعمل ل RewriteBase
.