我的网站存在问题。在升级到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.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 [&#39; base_url&#39;] =&#39;&#39 ;;
$ config [&#39; index_page&#39;] =&#39;&#39 ;;
$ config [&#39; uri_protocol&#39;] =&#39; REQUEST_URI&#39 ;; - &GT;之前试过AUTO,但没用。以前是AUTO
.htaccess
RewriteEngine On
RewriteCond%{REQUEST_FILENAME}! - f
RewriteCond%{REQUEST_FILENAME}!-d
RewriteRule ^(。*)$ index.php / $ 1 [L]
.htaccess在另一个文件夹中 拒绝所有
routes.php
$ route [&#39; default_controller&#39;] =&#34; main&#34 ;;
$ route [&#39; 404_override&#39;] =&#39; not_found&#39 ;;
我也试图查看配置文件,并在发布之前尝试了很多技巧。
我怀疑是在base_url函数或路由机制上。我不确定。
我新到代码点火器或PHP,也在服务器管理中。我的优势在于数据库。
请帮助缩小根本问题。
最好的问候, Ridwan
答案 0 :(得分:3)
出现这种错误有很多原因。这里有一些 1.确保你在控制器文件夹下有main.php,在main.php里面你应该有一个类Main,它扩展了CI_Controller这样
class Main extends CI_Controller
2.确保您的.htaccess正常工作。如果您的上一步操作正常,请尝试点击此链接
your_site_url/index.php/main/cek_login//make sure cek_login function exists inside the controller
如果此链接有效,您可能会遇到.htaccess问题
3.你的cpanel错误告诉你.htaccess不工作。
检查您的服务器是否有主.htaccess,如果找不到文件,则重定向您的网站。如果是这样,那么您的子.htaccess将无效。
我认为这是产生错误的主要原因。
答案 1 :(得分:2)
请检查您的config.php
$config['base_url']
然后检查'routes.php',添加下面的行
$route['main/(:any)'] = 'main/index';
然后,在控制器文件中添加登录检查。
// Login check
$exception_uris = array(
'main/cek_login',
'main/cek_logout'
);
if (in_array(uri_string(), $exception_uris) == FALSE) {
if ($this->user_m->loggedin() == FALSE) {
redirect('main/cek_login');
}
}
答案 2 :(得分:2)
只需上传测试文件并检查服务器目录的文档根目录。
1.创建一个文件info.php 2.编写代码
<?php
phpinfo();
3.打开任何broswer并输入http://www.yourdomain.com/info.php
如果工作正常,请在info.php页面的列出信息中找到文档roon
如果此http://www.yourdomain.com/info.php不起作用,请与服务器支持团队联系以解决问题。基本上是服务器配置问题,而不是Codeigniter文件。