Codeigniter subdomain routing

.htaccess, codeigniter, custom-url, php, routes

Solution

After 4 days of trial and error, I've finally fixed this issue!

Turns out it was a .htaccess problem and the following rules fixed it:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]

Thanks to everyone that read or answered this question.

Problem

I'm trying to setup a blog script on a website running on the CodeIgniter framework. I want do this without making any major code changes to my existing website's code. I figured that creating a sub domain pointing to another Controller would be the cleanest method of doing this. The steps that I took to setup my new `Blog` controller involved: - Creating an A record pointing to my server's ip address. - Adding new rules to CodeIgniter's `routes.php` file. Here is what I came up with: ``` switch ($_SERVER['HTTP_HOST']) { case 'blog.notedu.mp': $route['default_controller'] = "blog"; $route['latest'] = "blog/latest"; break; default: $route['default_controller'] = "main"; break; } ``` This should point `blog.notedu.mp` and `blog.notedu.mp/latest` to my `blog` controller. Now here is the problem... Accessing `blog.notedu.mp` or `blog.notedu.mp/index.php/blog/latest` works fine, however accessing `blog.notedu.mp/latest` takes me to a 404 page for some reason... My .htaccess file looks like this (the default for removing index.php from the url): ``` RewriteEngine on RewriteCond $1 !^(index\.php|images|robots\.txt) RewriteRule ^(.*)$ /index.php/$1 [L] ``` And my `Blog` controller contains the following code: ``` class Blog extends CI_Controller { public function _remap($method){ echo "_remap function called.\n"; echo "The method called was: ".$method; } public function index() { $this->load->helper('url'); $this->load->helper('../../global/helpers/base'); $this->load->view('blog'); } public function latest(){ echo "latest working"; } } ``` What am I missing out on or doing wrong here? I've been searching for a solution to this problem for days :(

Original source