4

私はコードイグナイターの初心者です。codeigniter を localhost/path/learn_ci にインストールしました。

codeigniter wiki に記載されているすべての手順に従いました。これが私の .htaccess ファイルです。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /learn_ci/index.php/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
ErrorDocument 404 /index.php
</IfModule>

必要に応じて構成ファイルも変更しました。しかし、アクセスしようとすると

このエラーが発生します

「要求された URL /learn_ci/index.php/welcome は、このサーバーで見つかりませんでした」

再確認しました...Apacheのmod_rewriteモジュールがオンになっています。

RewriteBase ソリューションも機能しませんでした。私は何か間違ったことをしていますか??

4

6 に答える 6

2

他の人が言ったように、AllowOverride が Apache 構成または仮想ホスト ファイルで All に設定されていることを確認してください。codeigniter をセットアップしたパスを考えると、htaccess は次のようになります。

RewriteEngine On
RewriteBase /path/learn_ci

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /path/learn_ci/index.php/$1 [L]

また、使用しているアセット (img、css、js など) は、base_url()関数または相対パスを使用して参照されることに注意してください。プロジェクトのルートは /path/learn_ci になります。

仮想ホストを作成し、ホスト ファイルにエントリをローカルに追加する方が簡単であることがわかりました。これにより、実際の生活をよりよく模倣できます。

于 2012-06-12T11:03:44.823 に答える
1

試す:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]  
于 2012-06-12T07:58:44.033 に答える
1

次のことができます。

config.php ファイル セットの先頭

$config['index_page'] = '';

次に、codeigniter ルート フォルダーに .htaccess ファイルを作成し、次の内容を追加します。

RewriteEngine on
RewriteCond $1 !^(index\.php|public|\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1

ファイルを保存します。それはうまくいくはずです。

于 2013-09-27T19:58:39.057 に答える
0

apacheの設定を確認してください。次のようになります。

Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
于 2012-06-12T09:42:49.607 に答える
0

index.php と同じディレクトリのルート public_html フォルダーに htaccess ファイルを配置します。

次に、htaccess ファイルから /learn_ci を削除し、/index.php/$1 にします。

于 2012-06-12T07:56:39.173 に答える
0

回答を追加することを考えました。プロジェクトのベース URL はhttp://localhost/newproject/ 、newproject フォルダーに htacess ファイルを含めました。

これがコードです。

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php/$1 [L,QSA]

次に、構成ファイルを変更します。

$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';

そして、すべてが機能し始めました。これで index.php ファイルはなくなりました。

于 2012-12-19T06:46:09.060 に答える