Chamara Abeysekara
Chamara Abeysekara

Reputation: 1322

Codeigniter subdomain 404 Not Found

I'm new to codeigniter and I'm working on a project that is done on this framework. When I try to access a url such as "mysite.com/about", it gives me and an error 404 Not found, I tried many .htaccess file on wamp and a live host but the result is the same. I can Access these file by using "mysite.com/index.php/about" but I want to access as this "mysite.com/about" this not only for about page but all so very page that I try to access by using like this "mysite.com/contact-us" .How do I fix this?

Upvotes: 2

Views: 2158

Answers (3)

Swapnil Mahadik
Swapnil Mahadik

Reputation: 694

Write this code in your .htaccess file and in wamp server click on rewrite_module

<IfModule mod_rewrite.c>

   RewriteEngine On
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule ^(.*)$ index.php/$1 [L]
   IndexIgnore *

</IfModule>

Upvotes: 5

muya.dev
muya.dev

Reputation: 977

Make sure that you have named the Class for your controller as the controllers file name. Then try to access the page as shown in the code below.

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

class Pages extends CI_Controller {
   
	function about()
	{

        $data['title'] = 'About us Page';
        $this->load->view('about', $data); //about is in views
  	}

      }

?>

The file name should be pages.php in this case.

To access the about page type in this link mysite.com/index.php?/controllerfolder/pages/about.

If you want clean url and remove index.php? edit your htaccess. Use this link to know how to edit your htaccess https://www.formget.com/codeigniter-htaccess-remove-index-php/.

Hope this is helpful. Thanks

Upvotes: 0

charj
charj

Reputation: 339

By default, Codeigniter will call the about controller, unless a method is provided in the second uri segment, the index() method will be loaded.

If the index() method doesn't exist, it will 404.

The other way of doing it is to add a line in your application/config/routes.php file. Such as:

$route['about'] = 'main/about';

This means, a request where the url matches /about will map to main/about

Main being the controller and about being the method within that for example.

See this part of the documentation for a more detailed explaination https://www.codeigniter.com/userguide3/general/routing.html

Hope this helps

Upvotes: 1

Related Questions