0

次のような 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 であるため、再び機能するようになりました。

4

0 に答える 0