لدي مطورون يقومون بتحرير الصفحات للعديد من المواقع على مكدس WAMP ثم التحميل إلى الخوادم العامة التي تعمل على تكديس LAMP. نحن سعداء بها ، لكن لدينا هذا الانزعاج البسيط: لا يمكننا استخدام ملفات htaccess نفسها في بيئات التطوير والإنتاج. على المواقع العامة ، يعين المجلد المصدر إلى http://foo.com
، http://bar.com
، وهكذا. على محطة عمل المطور ، يتم تعيين المجلدات المصدر إلى http://localhost/foo
، http://localhost/bar
، وهكذا. هذا يعني أنني أحتاج RewriteBase /
للخوادم العامة ، بينما يستخدم كل موقع على محطة عمل المطور RewriteBase /foo/
، RewriteBase /bar/
، أو أي شيء آخر.
هل هناك أي طريقة لتحديد RewriteBase بالنسبة لملف .htaccess
؟ أي أفكار أخرى حول كيفية جعل قواعد إعادة الكتابة الخاصة بي أكثر قابلية للنقل؟
إذا كنت فضوليًا ، فأنا أستخدم قواعد إعادة الكتابة لإعادة التوجيه إلى شفرة توجيه CakePHP ، لذلك تبدو القاعدة كما يلي:
RewriteRule ^(.*)$ cake_main.php?url=$1 [QSA,L]
إذا لم أستخدم RewriteBase من /foo/
على محطة عمل المطور ، فسيتم إعادة الكتابة إلى /cake_main.php
بدلاً من /foo/cake_main.php
.
لم يكن حلي هو العبث بقواعد إعادة الكتابة ، ولكن لإضافة نطاقات/مضيفات محلية منفصلة بها نطاقات TLD مزيفة إلى جهاز الكمبيوتر.
يمكنك القيام بذلك عن طريق تحرير الملف C:\Windows\System32\drivers\etc\hosts
كن على علم أنه في نظام التشغيل Windows 7 (وربما نظام التشغيل Vista) ، من أجل تحرير هذا الملف بنجاح ، يجب تشغيل محرر النصوص كمسؤول.
يمكنك إضافة مضيفين باستخدام خطوط تبدو مثل:
127.0.0.2 www.mysite.local
127.0.0.3 www.myothersite.local
بمجرد أن تصبح هذه في مكانها الصحيح ، يمكنك تكوين Apache لأسماء النطاقات هذه وستكون على ما يرام.
بالطبع ، لا يعمل هذا على إجراء اختبارات جيدة من أجهزة أخرى في الشبكة المحلية ، ولكن إذا كنت في هذه الحالة ، فقد يكون من الأفضل استخدام خادم DNS محلي أو تعيين المضيفين لعناوين IP محلية غير محمولة و مزامنة الملفات عبر جميع أجهزة الكمبيوتر.