it-swarm-tr.com

Geliştirme iş istasyonu ve sunucusu için Apache yeniden yazma kuralları

Bir WAMP yığında birkaç site için sayfa düzenleyen ve ardından LAMP yığınlarını çalıştıran genel sunuculara yükleyen geliştiricilere sahibim. Bundan çok memnunuz, ancak bu küçük sıkıntıya sahibiz: aynı .htaccess dosyalarını geliştirme ve üretim ortamlarında kullanamayız. Genel sitelerde, kaynak klasör http://foo.com, http://bar.com vb. İle eşleşir. Geliştirici iş istasyonunda, kaynak klasörler http://localhost/foo, http://localhost/bar vb. İle eşlenir. Bu, ortak sunucular için RewriteBase /’a ihtiyacım olduğu anlamına gelir; geliştirici iş istasyonundaki her site RewriteBase /foo/, RewriteBase /bar/ veya her neyse kullanır.

RewriteBase'i .htaccess dosyasına göre belirtmenin bir yolu var mı? Yeniden yazma kurallarımı daha taşınabilir hale getirme konusunda başka bir fikriniz var mı?

Merak ediyorsanız, CakePHP yönlendirme koduna yönlendirmek için yeniden yazma kuralları kullanıyorum, bu nedenle kural şöyle görünür:

RewriteRule ^(.*)$ cake_main.php?url=$1 [QSA,L]

Geliştirici iş istasyonunda RewriteBase /foo/ kullanmazsam, o zaman /cake_main.php yerine /foo/cake_main.php olarak yazacaktır.

7
Don Kirkby

Bu konudaki çözümüm yeniden yazma kurallarına aykırı olmak değil, bilgisayarıma sahte TLD'ler içeren ayrı yerel etki alanları/ana bilgisayarlar eklemek oldu.

Dosyayı düzenleyerek yapabilirsiniz. _C:\Windows\System32\drivers\etc\hosts_

Windows 7'de (ve belki de Vista'da) bu dosyayı başarıyla düzenlemek için metin editörünüzü Yönetici olarak çalıştırmanız gerektiğini unutmayın.

Şuna benzeyen satırları kullanarak ana bilgisayarlar ekleyebilirsiniz:

_127.0.0.2       www.mysite.local
127.0.0.3       www.myothersite.local
_

Bunlar yerleştirildikten sonra, Apache'yi bu etki alanı adları için yapılandırabilirsiniz ve gitmeniz iyi olur.

Elbette, bu, yerel ağdaki diğer makinelerden yapılan iyi testler için işe yaramaz, ancak bu durumda yerel bir DNS sunucusu kullanmak veya ana bilgisayarları yerel olmayan taşınabilir IP adreslerine atamak ve Dosyaları tüm PC'lerde senkronize edin.

4
JasonBirch