2010-06-03 40 views
0

我想設置我的codeigniter項目,以便我可以在我的web服務器上的任何文件夾中使用它。不幸的是,codeigniter要求我在配置的幾個變量中指定位置。這對可移植性來說是一個問題。如何使一個CodeIgniter項目與重定向一起移植

有3個地方,我看到這一點:

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

到目前爲止,我已經找到了解決方案(1)這裏: http://codeigniter.com/wiki/Automatic_base_url/

我尋找到解決方案(2) (3),但最重要的是(3)。下面是一個例子情況:

我設置的.htaccess有重寫規則如下:

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

然後我進入我的回購協議,並檢查了項目到另一個文件夾進行一些單獨的變化。現在,我必須更新htaccess來顯示如下:

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

我想設置它,所以我不作任何配置的變化,當我檢查了另一個副本。

回答

0

林不知道你可以使.htaccess便攜式,根據我的經驗,mod_rewrite的東西是非常敏感的開始,更不用說使其便攜。

至於(2)我不完全確定這是必需的。但是,您可以在index.php的頂部定義一個定義,以獲取文件的位置並保存它,然後在配置文件中稍後提取定義。

1

由於看起來您正在運行Apache,最簡單的事情可能是設置虛擬主機並使用您找到的「自動基礎URL」技巧。例如,您可以使文檔根C:\...\folderAlocalhost.folderB具有文檔根C:\...\folderB

從快速的Internet搜索「Apache如何設置虛擬主機」,this page看起來很有希望獲得有關如何在Windows上設置Apache虛擬主機的完整說明。嘗試按照site1.local的指示替換localhost.folderAsite2.local替換爲localhost.folderB

+0

感謝您的提示。但我想這樣做的原因是,我可以停止玩配置文件。 – Jono 2010-06-11 20:10:27

0

爲了您的基本路徑,你可以有:

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

或者

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

對基準URL

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

編輯:

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

這是更清潔,但使用相對URL的

相關問題