簡體   English   中英

Cakephp 2.4.5默認控制器未加載

[英]Cakephp 2.4.5 Default Controller not loading

我是cakephp的新手,試圖將默認控制器加載為頁面

這是我的路線:

Router :: redirect('/',array('controller'=>'pages','action'=>'display')));

路由器:: connect('/ pages / **',array('controller'=>'pages','action'=>'display')));

當我運行http://localhost/project/index.php ”時,它可以正常工作,但嘗試使用http:// localhost / project / ”,它不會加載默認控制器(頁面)

沒有htaccess和與htaccess給予相同的問題。

這是錯誤的:

找不到控制器類ProjectController。

錯誤:

在此服務器上找不到請求的地址“ /project/index.php/project/”。

您正在子目錄中運行,因此應設置RewriteBase:

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase /project/
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ /project/index.php?url=$1 [QSA,L] 
</IfModule

根據cakephp手冊:

http://book.cakephp.org/3.0/en/development/routing.html#redirect-routing

你應該試試

Router::scope('/', function ($routes) {
$routes->redirect(
    '/home/*',
    ['controller' => 'Articles', 'action' => 'view'],
    ['persist' => true]
    // Or ['persist'=>['id']] for default routing where the
    // view action expects $id as an argument.
);
})

而不是Router :: redirect。您應該嘗試一次此方法,可能會解決問題。

解決了

在應用程序控制器中添加了baseUrl:

function beforeRender(){
  $this->set('baseUrl', 'http://'.$_SERVER['SERVER_NAME'].Router::url('/'));
}

從Core.php中刪除了App.baseUrl:

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

現在可以正常使用: http:// localhost / app /

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM