3

WindowsでカスタムphpMVCを作成しましたが、バグなしでうまく機能しましたが、Linuxでは、デフォルト以外のコントローラーにアクセスできないなどのバグに直面しています。

例:localhost/mymvc -このURLはデフォルトのコントローラーにリダイレクトします

しかし、他のコントローラーを開こうとするとlocalhost/mymvc/projects 、「404notfounderror」が表示されます。

リダイレクトする関数は次のとおりです。

/* ***** Getting URL ***** */
$url = isset($_GET['url']) ? $_GET['url'] : null;
$url = explode('/',$url);

/* ***** When URL does not contain any controller name call default controller ***** */
if(empty($url[0])){
    $defaultpage = HOME;
    require 'application/controllers/'.$defaultpage.'.php';
    $controller = new $defaultpage();
    $controller->loadModel($defaultpage);
    $controller->index();
    return false;
}

/* ***** When URL contains controller name ***** */
$page = 'application/controllers/'.$url['0'].'.php';
if(file_exists($page)){
    require $page;
}else{
    $this->error();
}
$controller = new $url[0];
$controller->loadModel($url[0]);

ここにはバグはないと思いますが、それでも皆さんにレビューしてもらいたいと思いました。.htaccessファイルに問題があると思うので、ここに私が持っているものがあります:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
4

1 に答える 1