vikram
vikram

Reputation: 189

Redirect the URL to another, in codeigniter

I have a webpage which was built with core php, now its been updated to codeigniter mvc. Problem which i am facing is, users are trying to enter the old URL path

example: www.website_name/old_path

now since the mvc layout, it wont work and will get 404 error. i want to redirect the clients who enters www.website_name/old_path for the new one

www.website_name/index.php/new_controller/new_view.

Anyone please help me to resolve this issue.

Thank You!

Upvotes: 1

Views: 4589

Answers (3)

Kunal
Kunal

Reputation: 604

first of all remove index.php config file. Open config.php and do following replaces

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

to

$config['index_page'] = ""

Then create HTACCESS file in application/ folder

having this code....

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

Now index.php is removed from your URl....

STEP 2) open application/config/routes.php file Now here define your desired web URL

$route['mycontroller/(:any)'] = "mycontroller/user_detail/$1";

So,Your URL Will be .. www.website_name/new_controller(or xyz)/

Here you can also change the controller name differently using routes So no one can get the exact name of controller/method name....To Do such customization refer this URL http://www.codeigniter.com/user_guide/general/urls.html

Upvotes: 3

Jalpa
Jalpa

Reputation: 720

You can use 301 redirect for this type of issue.

Put this code in .htaccess

RewriteRule ^www.website_name/old_path www.website_name/index.php/new_controller/new_view [L,R=301]

or use 301 redirect of codigniter http://www.codeigniter.com/user_guide/helpers/url_helper.html

// with 301 redirect
redirect('/article/13', 'location', 301);

Upvotes: 2

raidenace
raidenace

Reputation: 12834

As Sumit mentioned, you should use URL Routing for this.

In the routes file you can create a list of all the redirects that you want like so:

$route['old_path'] = "new_controller/new_view";

Upvotes: 2

Related Questions