奇妙な問題があります。古い CodeIgniter プロジェクトを変更する必要があります。
開発にローカルの Windows XAMPP サーバーを使用しており、私のプロジェクトは XAMPP で作業していました。
数週間前、オペレーティング システムを再インストールしました。XAMPP (同じバージョン) をインストールし、htdocs をデフォルトc:\xampp\htdocs
から に移動しましたe:\htdocs
。htdocs を移動した XAMPP に問題はありませんでした (他の非 codeigniter プロジェクトは正常に動作しています)。
今日、本番サーバーからローカルホストにアプリケーションをコピーしましたが、機能しません。
ブラウザで開こうとすると、http://localhost/myprojectfolder
空白のページが表示されます。
ローカル Windows での CodeIgniter のクリーン インストール XAMPP は機能します (ただし、クリーン インストールでは .htaccess は使用されません)。
プロジェクトは、次のような .htaccess ファイルを使用して本番 Web サーバーで正常に動作しています。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /myprojectfolder
### Canonicalize codeigniter URLs
# If your default controller is something other than
# "welcome" you should probably change this
# RewriteRule ^(welcome(/index)?|index(\.php)?)/?$ / [L,R=301]
# RewriteRule ^(.*)/index/?$ $1 [L,R=301]
# Removes trailing slashes (prevents SEO duplicate content issues)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ $1 [L,R=301]
# Removes access to the system folder by users.
# Additionally this will allow you to create a System.php controller,
# previously this would not have been possible.
# 'system' can be replaced if you have renamed your system folder.
# RewriteCond %{REQUEST_URI} ^system.*
# RewriteRule ^(.*)$ /index.php/$1 [L]
# Checks to see if the user is attempting to access a valid file,
# such as an image or css document, if this isn't true it sends the
# request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
# Without mod_rewrite, route 404's to the front controller
ErrorDocument 404 /index.php
</IfModule>
ローカルホスト用に別の .htaccess ファイルがあったかどうか覚えていません。私が持っていた場合-本番サーバーからのファイルによって上書きされました。
プロジェクトで使用される MySQL データベースは、両方のサーバーで同一です (名前、ユーザー、パスワード、構造など)。
私$config['uri_protocol']
はに設定されてAUTO
おり、XAMPPで動作していましたAUTO
.
私のファイルのアクセス許可htdocs
は問題ありません (httpd.exe サービスを開始しているユーザーはそこで読み書きできます)。
私のルーティング:
$route['default_controller'] = "home";
$route['admin'] = 'admin/start';
$route['404_override'] = '';
何か案は?