これはWebサーバーの構成変更が行われた可能性があり、ホスティングプロバイダーは誰にも通知していませんが、とにかく...
次のディレクトリ構造でCodeigniterインスタンスを設定しています。
/root
/codeigniter
/app
/sys
/www
/sandbox
/ci
/js
/css
/img
.htaccess
index.php
したがって、index.phpには、次の変数があります。
$application_folder = '../../../codeigniter/app';
$system_path = '../../../codeigniter/sys';
これらは共有ホスティングプロバイダーであるため相対的な定義ですが、そのように機能しているように見えるので、これは問題ではないと思います(WAMPでは、c:/ wamp/ciなどのフォルダーパスが明示的に定義されています/応用)
config.phpには、次の変数が設定されています。
$config['base_url'] = 'http://******.co.uk/sandbox/ci/';
...
$config['index_page'] = '';
...
$config['uri_protocol'] = 'AUTO';
www / sandbox/ciの.htaccessファイルは次のように設定されています。
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
数日前まではすべて問題なく動作していましたが、クリスマス直前にかなりの数のファイルを置き換えたため、気付かずに誤って何かを上書きしてしまった可能性があります。この設定は、WAMPサーバーでは正常に機能しますが、routes.phpで定義されているものではないコントローラーの機能にアクセスしようとすると、ライブサーバーでは失敗します。
私のroutes.phpは次のようになります:
$route['default_controller'] = "home_controller";
$route['404_override'] = '';
home_controllerは正常に見えますが、ログイン(auth_controller / loginへのフォームPOSTを介して処理されます)のようなことを行おうとすると、404で失敗します。home_controllerに追加の機能はありません。
ロギングしきい値を4に設定しても、何も興味深いことはありません。ChromePHPは、コントローラーへのパスが見つからないことを示唆しているだけです。
mod_rewriteは機能しているようです。これは、.htaccessファイルにプレーンテキストを追加すると、サーバーエラー500が発生し、さらにindex.phpの書き換えが機能しているためです。また、rewrite_short_tagsをTRUEに設定しています。
config.phpのすべてのuri_protocolタイプを試しましたが、何も違いがないようです。そのため、それが私が行ったことであるか、routes.phpから何かが欠落しているか、または何かが欠落しているように感じます。私の.htaccess。
どんな考えでもいただければ幸いです。私が言ったように、このセットアップ全体は私のWAMPサーバーで問題なく機能します。