it-swarm.asia

أباتشي إعادة كتابة قواعد لتطوير محطة العمل والخادم

لدي مطورون يقومون بتحرير الصفحات للعديد من المواقع على مكدس 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.

7
Don Kirkby

لم يكن حلي هو العبث بقواعد إعادة الكتابة ، ولكن لإضافة نطاقات/مضيفات محلية منفصلة بها نطاقات 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 محلية غير محمولة و مزامنة الملفات عبر جميع أجهزة الكمبيوتر.

4
JasonBirch