2010-05-24 59 views
0

使用CakePHP 1.3運行CakePHP的應用程序,我有以下佈局:如何從子目錄

/srv/www/_cakephp13/ 
    /app/ 
    /cake/ 
    /plugins/ 
    /vendors/ 
    etc... 

/srv/www/htdocs/ 
    /cake_app/ 
    /other-dir/ 

...其中htdocs是公共目錄,我提出我的應用程序的webrootcake_app以上。 ..這似乎是差不多工作。 (自定義webroot的index.php後)。

當我訪問http://devserver/cake_app/時,我能夠看到默認的「主頁」頁面控制器/視圖(我已經自定義,因此似乎似乎正在工作)。

但是,當我訪問http://devserver/cake_app/controller/view我收到錯誤。

是否可以在網站根目錄的子目錄中運行Cake App?我怎樣才能得到這個工作?

理想,我不想要編輯的Apache的conf的......如果我可以用蛋糕配置或htaccess中解決這個問題,我會更快樂。

+0

你可以發佈你的.htaccess嗎?它在哪個目錄? – webbiedave 2010-05-24 15:33:56

+0

他們都在這個地方,哪一個呢? =)* htdocs *沒有一個,* cake_app *和* _cakephp13 *中的其他文件是Cake的解壓縮文件。我沒有編輯它們。 * htdocs *的Apache Directory定義將AllowOverride設置爲All。 – 2010-05-24 15:40:39

+0

cake_app中的一個。您應該驗證.htaccess正在運行,並且正在進行重寫。運行一些測試來驗證這兩個。 – webbiedave 2010-05-24 15:55:52

回答

2

您應該驗證.htaccess正在運行,並且重寫模塊已打開並正在工作。

+0

接受,因爲這是我特別的問題。查看我對原始帖子的評論以獲取更多信息。 – 2010-05-24 17:16:33

+1

在.htaccess上重寫base也會造成麻煩,所以需要正確設置。 – dabito 2010-05-24 17:28:35

+0

@dabito:非常真實。添加'Rewritebase /'解決了許多人的配置錯誤。 – webbiedave 2010-05-24 17:34:40

1

您將需要在Apache上啓用mod_rewrite。要檢查它是否打開,請創建一個頁面,只是這樣做:

echo phpinfo(): 

在文本「加載模塊」上的Grep。確保mod_rewrite在那裏列出。如果不是,您可以將其添加到apache的配置中,或者您可能需要安裝它(取決於您的原始安裝方法以及是否包含該模塊)。

如果你不能讓mod_rewrite運行,你仍然可以在沒有它的情況下使用蛋糕(該URL看起來像index.php/controller/action/etc)。查看http://book.cakephp.org/view/333/A-Note-on-mod_rewrite瞭解更多信息。具體來說,

如果你不想或者不能得到 的mod_rewrite(或其他兼容 模塊)和運行服務器, 你需要使用Cake的內置 漂亮的網址上。在/app/config/core.php, 取消註釋行,看起來像:

配置::寫( 'App.baseUrl', ENV( 'SCRIPT_NAME'));