Yönlendirmeler ile bir CodeIgniter proje taşınabilir yapmak için nasıl

3 Cevap php

Ben benim webserver herhangi bir klasörde kullanabilirsiniz yüzden benim CodeIgniter projeleri kurmak istiyorum. Ne yazık ki CodeIgniter config çeşitli değişkenler konumunu belirlemek için beni gerektirir. Bu taşınabilirlik için bir sorundur.

Bunu görmek 3 yer vardır:

1) $config['base_url'] 
2) $config['base_path'] 
3) .htaccess RewriteRule

So far, I have found the solution to (1) here: http://codeigniter.com/wiki/Automatic_base_url/

I (2) çözümler arıyor ve (3), ama en önemlisi (3). Am İşte bir örnek durum:

Ben set htaccess aşağıdaki gibi RewriteRule var.:

RewriteRule ^(.*)$ /folderA/index.php/$1 [L]

Sonra benim repo gitmek ve Bazı ayrı değişiklikler yapmak için başka bir klasöre projeyi kontrol. Şimdi güncelleme var htaccess aşağıdaki göstermek için.:

RewriteRule ^(.*)$ /folderB/index.php/$1 [L]

Ben başka bir kopyasını kontrol ettiğimde bu yüzden herhangi bir yapılandırma değişiklikleri yapmak zorunda değilsin ayarlamak istiyorum.

3 Cevap

Eğer Apache'yi çalıştıran görünür beri, kolay şey, muhtemelen sanal konakları kurmak ve buldum "otomatik taban URL" hile kullanmak olacaktır. Sen var localhost.folderA belge kök var C:\...\folderA ve localhost.folderB, örneğin, belge kök C:\...\folderB olabilir.

"Nasıl sanal konaklar kurmak için Apache" için hızlı bir Internet arama, this page Windows Apache sanal konakları kurmak konusunda tam yönergeler için umut verici görünüyor. site1.local localhost.folderA ve site2.local localhost.folderB ile değiştirilmesi ile değiştirilmesi ile talimatları deneyin.

Eğer .htaccess taşınabilir yapabilir mi emin değilim, benim deneyim mod_rewrite şeyler taşınabilir hale dursun, başlamak için gerçekten alıngan.

Gibi (2) bu artık gerekli tamamen emin değil im. Eğer yapabilir ancak daha sonra config dosyasında tanımlamak çekin, sonra dosyanın konumunu alır ve kaydeder index.php üstünde tanımlar.

Baz yolu sizin için olabilir:

$config['base_path'] = $_SERVER['DOCUMENT_ROOT'];

Or

$config['base_path'] = dirname(FCPATH) . '/';

Ve taban URL için

$config['base_url'] = 'http://' . $_SERVER['SERVER_NAME'] . dirname($_SERVER["SCRIPT_NAME"]);

Edit:

$config['base_url'] =  dirname($_SERVER["SCRIPT_NAME"]);

Bu temizleyici ama göreli URL kullanır