シナリオ
CodeIgniter 3 の現在の開発バージョンにアップグレードしている Web サイトがあります。アップグレード手順に従って、すべてのクラス ファイルの名前を最初に大文字に変更しました (例: application/controllers/Home.php)。
期待される結果
小文字の URL でコントローラを通常どおり使用するには、次のようにします。
Home.php コントローラーを使用します。
私が得たもの
URL の最初の文字が小文字の場合、大文字のファイル名は自動的に呼び出されません。(404 エラー)。
私が試してみました
- コントローラの最初の文字を大文字にして URL を入力します。http://examplesite.com/Home/これにより、期待どおりにコントローラーが生成されます。
- routes.php のデフォルト コントローラを大文字にすると、期待どおりにページが生成されます。ただし、最初の文字が大文字のコントローラーを含めるようにすべての URL を変更する必要がある場合、これは理想的とは言えません。
ノート
- サイトは PHP 5.3.17 FastCGI で実行されています。
- index.php は、次の .htaccess ルールで URL から削除されました。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
どんな助けでも大歓迎です。
編集 1
_validate_request
コアルーターの機能に絞り込みました。からその関数への呼び出しをコメントアウトすると機能し_set_request
ます。
編集 2
_validate_request
関数の名前を に変更_validate_request2
し、新しい名前を使用して呼び出すと、完全に機能します。この関数名は予約語ですか?