Welcome Guest, Not a member yet? Register   Sign In
All url's show default controller index function

I've seen others post about this but could not find a solution that worked for me in any of the existing threads. No matter what URL I go to, only the default controller is called, and I get three "Undefined offset" errors, each on a different line of libraries/Router.php.

Here is my htaccess code:

DirectoryIndex index.php

    RewriteEngine On

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

A possibly relevant line in config.php:

$config['index_page'] = "";

Content of routes.php:

$route['default_controller'] = "welcome";
$route['scaffolding_trigger'] = "";

$route['portfolio/(.+)'] = "welcome/portfolio/$1";
$route['gallery/(.+)'] = "welcome/gallery/$1";
$route['contact'] = "welcome/contact";
$route['sendContact'] = "welcome/sendContact";
$route['(.+)'] = "welcome/content/$1";

The application is running fine on my development machine, and I have several other CI sites doing just fine. I re-downloaded the latest version of CI for this project, figuring I might as well have the latest and greatest, but it's not playing well with the shared Bluehost account (I have other CI sites on that server doing just fine with older versions of CI)...

What lines are the errors reported to be at?

197, 203, and 206.

New thing I just discovered, if I include a trailing slash at the end of the URL, it does not show the warnings. But it still shows only the default controller's index function...

I think you need to remove the trailing slash from the last line of your htaccess file:

RewriteRule ^(.*)$ index.php/$1/ [L]

Otherwise you get a // in your URI, which is no doubt responsible for your error.

Thanks, that got rid of the error message!

Unfortunately, I still have this even more puzzling problem of every URL only calling the default controller index...

I have tried changing

$config['index_page'] = "";


$config['index_page'] = "index.php";

But it still does the same thing - Unless I specify index.php in the url, I am seeing the home page no matter what URL I use...

I'd suggest removing the index_page again by setting it to '', and trying the different URI protocols in the config.php file. I'd suggest REQUEST_URI or QUERY_STRING.

You solved it!

Setting the uri protocol to REQUEST_URI in config.php finally solved the problem!

Thank you very, very much. You are a scholar and a gentleman! I would have never thought to look there. I wonder if it is has something to do with the fact that I am using a sub-domain on the production server until the site is ready and the domain is transferred...

URIs seem to be handled differently from platform to platform. Often Windows has a problem with the default, although I've known the odd Linux server to as well.

Glad you got it sorted. Smile

[eluser]Thorpe Obazee[/eluser]
Hostgator? :p

It's Bluehost...I have another CI site on there where the protocol is set to the default "auto". I suspect I needed to set it to request_uri because this site is in a sub-directory with a sub-domain. I'll bet that once I xfer the domain name it will work normally when set back to "auto"...(or maybe not - I'm not so familiar with the finer points of DNS settings)...

Theme © iAndrew 2016 - Forum software by © MyBB