次のような URL がある場合:
http://localhost/Cool Website/
次のエラーが表示されます。
404 Page Not Found: The page you requested was not found: Cool Website/index
ただし、次のようなアンダースコアを使用するとhttp://localhost/Cool_Website/
CodeIgniter は意図したとおりにロードされます。この問題は、名前に変更できないスペースが含まれているメイン プロジェクトに CodeIgniter フォルダーをサブフォルダーとして貼り付けた後に明らかになります。(CodeIgniter プロジェクトの名前をアンダースコアを使用するように変更できます)
これに対する回避策はありますか?
更新:システム ファイルを変更して問題を解決しました。私はphp 5.3.13を実行しています。
URI コア ファイルに移動し、これを _parse_request_uri に入れました。
$uri = str_replace('%20', ' ', $uri);
206行目以降$uri = isset($uri['path']) ? $uri['path'] : '';
これで直ったようです。QUERY_STRING が空だったので、構成ファイルの QUERY_STRING への変更を元に戻しました。これは CodeIgniter 3.0 のバグである可能性があります。私の推測では、20% は uri コードによって「有効と見なされていなかった」ため、実際のスペースに戻すと、それが本当に適切な URL であるため、再び機能するようになりました。