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.
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.