2009-07-15 171 views
3

如何從cakephp url中刪除index.php?爲了訪問我的表單文件夾,我必須提供url:http://localhost/cake_1_2/index.php/forms從cakephp url中刪除index.php

我該如何刪除index.php?

我從core.php中提到的文件夾中刪除了.htaccess,並取消註釋了App.baseUrl行。但是,我無法在url中沒有index.php的情況下查看頁面。

+0

呃......你爲什麼要那樣做? index.php在默認情況下不應該是可見的,但現在你已經刪除了.htaccess文件,它將最能被看到。 – 2009-07-15 10:49:50

+0

那我不應該刪除這些文件嗎?我不想在我的網址index.php。 – Angeline 2009-07-15 11:11:49

回答

2

如果你在CakePHP上使用mod_rewrite(可以獲得漂亮的URL),你可以在WEBROOT中創建新的文件夾並訪問文件。

例子:

Site/webroot/forms/form.php = http://www.sitename.com/forms/form.php 

CakePHP的mod_rewrite的是設置在WEBROOT檢查現有的文件不將它們傳遞到index.php。

如果您需要啓動webroot之外的文件夾,您可能會考慮使用符號鏈接進行播放。

1

檢查mod_rewrite的CakePHP Install guide部分。一旦在Apache中啓用,漂亮的URL就可以工作。如果你沒有使用Apache,你就會陷入醜陋的URL。

0

你也可以查看這個mod改寫教程here。 它有一般的信息,這將有助於在許多情況下的網址清理。還包括一些例子。

1

只需按照下面的下面的步驟來驗證它的存在與否

  1. 檢查你的根,應用程序,Web根目錄包含了實際的.htaccess文件。

  2. 的APACHEE服務器具有以下配置:

    <Directory /> 
    Options FollowSymLinks 
    AllowOverride All# 
    Order deny,allow# 
    Deny from all 
    </Directory> 
    
  3. 而且這條線是uncammented:

    LoadModule rewrite_module libexec/apache2/mod_rewrite.so 
    

然後重新啓動apache看到的變化

1

我有同樣的問題,並在UR中有index.php L.你正在編輯httpd.conf中的錯誤區域。此外,確保存在於您的.htaccess文件:/.htaccess,/app/.htaccess和/app/webroot/.htaccess

httpd.conf文件應該是這個樣子:

# Leave this area alone, CakePHP docs are wrong 
<Directory /> 
    Options FollowSymLinks 
    AllowOverride None 
    Order deny,allow 
    Deny from all 
</Directory> 

# Match this area 
<Directory "/SomePath/app/webroot"> 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride All # Turn AllowOverride All on here 
    Order allow,deny 
    Allow from all 
</Directory> 

後做這個,我可以很容易地創建路線&訪問頁面如:http://localhost/about/

享受!

0

那麼,它應該好嗎?你已經有mod_rewrite?

如果mod_rewrite被正確加載,.htaccess文件就位和索引。PHP仍然出現在鏈接那麼它最有可能與core.php框架配置文件的問題。

問題原因

對我來說,這是問題App.baseUrl配置選項:

Configure::write('App.baseUrl', env('SCRIPT_NAME')); 

解決問題

這裏是我固定的問題(以及其他一些與重定向)通過從core.php註釋以下行:

// Configure::write('App.baseUrl', env('SCRIPT_NAME')); 

或蛋糕3+在config/app.php

//'baseUrl' => env('SCRIPT_NAME')