CodeIgniter インストールの単純なコントローラーで次の問題があります。
Pages.phpcontrollers/pages.php
コントローラーで URL セグメントを調べ、ディレクトリ内のフォルダーとサブフォルダーから静的ファイルを読み込みます/views/pages
。
例:
- 私が持っている場合
site.com/buy
、それは buy.php フォームをロードします/views/pages
- URL が の場合はから
site.com/buy/go
ロードされますが、現在はから ロードされますgo.php
/views/pages/buy
site.com/buy
index.php
/views/pages/buy
別のサブフォルダーを追加するように変更されました (例: site.com/buy/go/why
from /views/pages/buy/go/why
)。
コントローラー:
class Pages extends CI_Controller {
public function __construct() {
parent::__construct();
$this->view();
}
private function view() {
$url_string = $this->uri->uri_string();
if (!file_exists(APPPATH . 'views/pages/'. $url_string. '/index.php')) {
if (!file_exists(APPPATH . 'views/pages/' . $url_string . '.php')) {
show_404();
} else {
$path = $url_string . '.php';
}
} else {
$path = $url_string . '/index.php';
}
$this->load->view('pages/' . $path);
}
問題は、URL に関係なく 404 が返されることです。
削除するpages/
と、$this->load->view
別のエラーがスローされます。ファイルを読み込めません。しかし、それはファイルを正しく取得します。(たとえば、buy/go.php, while the URL is
site.com/buy/go` を読み込めません)。