我的网站有问题 . 在升级到mySQL 5.6之后,主机povider重新编译了Apache和PHP . 显然他们也升级了WHM cPanel .
至于现在我的网站可以正常显示,但是当试图登录时,它找不到所请求的特定页面 .
错误消息:
在此服务器上找不到请求的URL / main / cek_login . 此外,尝试使用ErrorDocument处理请求时遇到404 Not Found错误 .
来自cPanel的
错误消息:
[2014年12月22日10:10:58] [错误]文件不存在:/ home / xxx / public_html / main [2014年12月22日10:10:56] [错误]文件不存在:/ home / xxx /public_html/404.shtml
到目前为止我的分析:
CI版本:2.2
PHP版本:5.4.3.5
mySQL版本:5.6.21
cPanel版本11.46.1(版本4)
main - >实际上是一个名为main.php的文件cek_login - >是main.php中的一个函数,它对用户表中的记录运行验证 .
文件夹结构如下 .
/home
/application
/controllers
/main
/view
/login_view
/system
/assets
/cgi-bin
代码如下
<div class="loginForm">
<?=($_GET[ 'error'])? "<div class='alert'>$_GET[error]</div>": ""?>
<form class="form-horizontal" action="<?php echo base_url().'main/cek_login'; ?>" method="POST">
config.php在应用程序文件夹中
$ config ['base_url'] ='';
$ config ['index_page'] ='';
$ config ['uri_protocol'] = 'REQUEST_URI'; - >之前试过AUTO,但没用 . 以前是AUTO
根文件夹中的.htaccess
RewriteEngine On
RewriteCond%! - f
RewriteCond%!-d
RewriteRule ^( . *)$ index.php / $ 1 [L]
.htaccess在另一个文件夹中
否认所有人
routes.php文件
$ route ['default_controller'] = "main";
$ route ['404_override'] = 'not_found';
我试图查看配置文件,并在发布之前尝试了很多技巧 .
我怀疑是在base_url函数或路由机制上 . 我不确定 .
我也是服务器管理中的Code Igniter或PHP的 NEW . 我的优势在于数据库 .
请帮助缩小根本问题 .
最好的问候,Ridwan
3 回答
这个错误可能由于许多原因而发生 . 这里有一些
1.确保你在控制器文件夹下有main.php,在main.php里面你应该有一个类Main来扩展CI_Controller这样
2.确保你的.htaccess工作 . 如果你的上一步没问题,那么试着点击这个链接
如果此链接有效,则可能存在.htaccess问题
3.你的cpanel错误告诉你.htaccess无法正常工作 .
检查你的服务器是否有主.htaccess,如果找不到文件,重定向你的网站 . 如果这样,你的子.htaccess将无法正常工作 .
我认为这是产生错误的主要原因 .
请检查你的config.php
$config['base_url']
然后检查'routes.php',在下面添加一行
然后,在控制器文件中添加登录检查 .
只需上传测试文件并检查服务器目录的文档根目录即可 .
1.创建一个文件info.php 2.编写代码
3.打开任何broswer并键入http://www.yourdomain.com/info.php
如果工作正常,请在info.php页面的列出信息中找到文档
如果此http://www.yourdomain.com/info.php无效,请与服务器支持团队联系以进行修复 . 服务器配置基本上是问题,而不是Codeigniter文件 .