PHP CodeIgniterを使用して記述されたスクリプトをダウンロードしました。localhostから実行すると、adminフォルダーに移動すると、再びlocalhostが表示されます。また、Webホストから実行すると、500が表示されます内部サーバーエラー。
http:// localhost/myproj からサイトを実行します。次に、 http:// localhost/myproj/administrator にある管理ページに移動しようとすると、500内部サーバーエラーが発生します。
これは.htaccessファイルの間違ったコードが原因である可能性があることをここで読みました。これは私の現在の.htaccessファイルです
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ $1 [L,R=301]
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
# Without mod_rewrite, route 404's to the front controller
ErrorDocument 404 /index.php
私を助けてください。非常に小さな問題である可能性があることはわかっていますが、エラーを見つけることができません。
(CodeIgniterを使用した)500エラーの問題、Apacheの設定が異なる場合、PHP構成でエラーが発生すると500エラーが表示されます。
CodeIgniterで500エラーをトリガーする方法は次のとおりです。
Apacheエラーログを確認してください。興味深い情報がそこにあるはずです。
他の誰かがこの問題に遭遇した場合に備えて、私は古いCodeIgniterプロジェクトを継承し、インストールするのに多くの問題を抱えていました。
私はサイトのローカルインストールを作成するのに膨大な時間を無駄にし、すべてを試しました。結局、解決策はシンプルでした。
問題は、古いCodeIgniterバージョン(1.7以下など)がPHP 5.3で動作しないことです。解決策はPHP 5.2または何かに切り替えることです。古い。
あなたはあなたのサイトのURLからindex.phpを削除しようとしています、正しいですか?
$config['uri_protocol']
からREQUEST_URI
の代わりにAUTO
。
httpd.conf(Apache構成ファイル)のコメントを削除します。
LoadModule rewrite_module modules/mod_rewrite.so
これを.htaccessファイルで試してください:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule >
私は遅れていることを知っていますが、これは誰かを助けるでしょう。
書き換えエンジンが 有効 かどうかを確認します。
そうでない場合は、書き換えエンジンを有効にしてサーバーを再起動します。
Sudo a2enmod rewrite
Sudo service Apache2 restart
サブディレクトリでCodeIgniterを実行するたびに、RewriteBase
をそれに設定しました。 /myproj/
ではなく/
に設定してみてください。
これはおそらくこのスレッドにはもはや関係ありませんが、誰かに役立つことを願っています。コントローラーが私の(くだらない)サーバーで実行されているphpのバージョンでサポートされていない配列を返すため、この1時間で500エラーが発生しました。ささいなことのようですが、codeigniterエラーの特徴がありました。
私は使用しなければなりませんでした:
class emck_model extends CI_Model {
public function getTiles(){
return array(...);
}
}
の代わりに
class emck_model extends CI_Model {
public function getTiles(){
return [...];
}
}
乾杯
これは私にとってはうまくいきます
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule >
ルートを確認してくださいindex.php
ファイルには正しい権限があり、その権限は0755
または0644
wampserverバージョン2.5の場合、Apache構成を次のように変更します。
httpd.conf(Apache設定ファイル):から
#LoadModule rewrite_module modules/mod_rewrite.so**
#を削除するには
LoadModule rewrite_module modules/mod_rewrite.so**
これは私にとってはうまくいきます