Why codeIgniter show the requested URL was not fou

2020-02-15 02:24发布

问题:

I want to ask. First of all, I will tell that I've develop an application use codeIgniter on my windows dekstop. And it clear and run completely.

But, after I move that project to debian server, it said :

The requested URL /index.php/Admin was not found on this server.

I want to ask, why I got an output like that? Eventhough I ran the same project with the same code. How can I do to fix this issue?

Thanks...

回答1:

First of all enable mod_rewrite then restart apache2 using following commands:

sudo a2enmod rewrite
sudo service apache2 restart

then open apache conf file using command:

sudo gedit /etc/apache2/apache2.conf

uncomment below line if it is commented

AccessFileName .htaccess

then find these lines in apache2.conf

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted

here change the line AllowOverride None to AllowOverride All and save this file.

Now, your issue is resolved.



回答2:

First thing that you should know the debian is a Linux base server. So Its not like windows servers(XAMPP and WAMP).

So first of all consider about Letters. It means debian Sever is Case-Sensitive.

So check your naming conversation as well

Check these

  1. Controller class name class Admin extends CI_Controller
  2. Controller file name should be admin.php
  3. Check in routes.php. In routes $route['default_controller'] = "admin";


回答3:

Codelgniter URL example :

example.com/class/function/id/ 

So check your class name correct or not, And call url instead of Capital A - Admin to admin.

<?php (defined('BASEPATH')) OR exit('No direct script access allowed');

class Admin extends CI_Controller 
{

}  

Note: if you use codelgniter-3 version file name also must Should capital A. I mean Admin.php