PHPフレームワークは言うまでもなく、CodeIgniterを使用したことがないので、試してみようと思いました。URL から index.php を削除しても自分のページにアクセスできないことを除けば、すべてうまくいっています。
私は MVC 構造を使用したことがないので、学習しながら学んでいるので、これが間違っている場合はご容赦ください。
localhost/ci/aboutと入力するだけで、作成した「about_page.php」というビューにアクセスしようとしていますが、現在、 localhost/ci/index.php/aboutを使用してのみアクセスできます。
ページのコントローラは次のとおりです: /application/controllers/about.php
ページのモデルは次のとおりです: /application/models/about_model.php
ページのビューは次のとおりです: /application/views/about_page.php
この問題の解決策を探しましたが、見つかりませんでした。すでに検索した場所は次のとおりです。
CodeIgniter - index.php
の削除 Codeigniter - URL から index.php を削除するには?
http://www.farinspace.com/codeigniter-htaccess-file/
CodeIgniter には、.htaccess ファイルが「application」フォルダにあり、.htaccess ファイルのみが含まれていますAllow Deny From All
。そこで、ルート ディレクトリに新しい .htaccess ファイルを作成し、次のhttp://localhost/ci/.htaccess
コードを追加しました。
RewriteEngine On
RewriteBase /ci
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
.htaccess ファイルがルート ディレクトリにある場合、500 内部サーバー エラーが発生します。まったく同じファイルをアプリケーション フォルダーにコピーすると、500 エラーはなくなりますが、 localhost/ci/aboutを使用して about ページにアクセスできません。
既に に変更$config['index_page'] = 'index.php';
しており、 に変更$config['index_page'] = '';
しようとし$config['uri_protocol'] = 'AUTO';
まし$config['uri_protocol'] = 'REQUEST_URI';
たが、まだ内部サーバー エラーが発生します。
httpd.conf ファイルに入り、mod_rewrite.so モジュールのコメントを外したので、mod_rewrite がアクティブであることがわかりました。
なぜこれが機能しないのか、またはどうすればこの機能を得ることができるのか、誰にもアイデアがありますか? この件に関して StackOverflow に多くの質問があることは知っていますが、私の質問に答えたものは見つかりませんでした。
私はこれを正しく行っていますか?localhost/ci/aboutにアクセスして about ページにアクセスできるようにする必要がありますか、それとも「application」ディレクトリに「about」ディレクトリを作成する必要がありますか?