我有奇怪的问题。我必须修改旧的 CodeIgniter 项目。
我使用本地 Windows XAMPP 服务器进行开发,我的项目正在使用 XAMPP。
几周前我重新安装了操作系统。我安装了 XAMPP(相同版本)并将 htdocs 从默认值c:\xampp\htdocs
移至e:\htdocs
. 我对移动 htdocs 的 XAMPP 没有任何问题(其他非 codeigniter 项目运行良好)。
今天我将应用程序从生产服务器复制到我的本地主机,但它不工作。
当我尝试在浏览器中打开时:http://localhost/myprojectfolder
我得到空白页。
在本地 Windows XAMPP 上干净的 CodeIgniter 安装可以工作(但是干净的安装不使用 .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 文件用于 localhost。如果我有 - 它被生产服务器的文件覆盖。
项目中使用的 MySQL 数据库在两台服务器上都是相同的(名称、用户、密码、结构等)。
我$config['uri_protocol']
的设置为AUTO
,它正在使用AUTO
.
我的文件权限htdocs
很好(启动 httpd.exe 服务的用户可以在那里读写)。
我的路由:
$route['default_controller'] = "home";
$route['admin'] = 'admin/start';
$route['404_override'] = '';
有任何想法吗?