thwd
thwd

Reputation: 24808

Codeigniter URL routing question

I'd like to know how to accomplish the following using the Codigniter MVC framework:

I want the URLs on my site looking like this:

http://www.example.com/florida/miami/12345-selling-a-new-ipod.html
http://www.example.com/texas/houston/21345-nice-red-car-for-sale.html
http://www.example.com/north-carolina/hickory/92634-giving-away-two-kitties.html

So basically the URI is composed of state / city / article.

I want to cover all cities in the 50 states, but I wouldn't want to write a controller for each state and each city.

So my question basically is:

How can I write a single controller that will display a state index based on the first URI segment and a second controller displaying a city index based on the second URI segment?

Best regards

Tom

Upvotes: 1

Views: 1076

Answers (2)

icchanobot
icchanobot

Reputation: 3343

you could do it by configuring a route in your config/routes.php

$route['^(:any)/(:any)'] = "some_controller/some_method/$1/$2";

which will map everything into the some_method function of your some_controller class. so if you have anything else which isn't example.com/state/city it will also get sent there.. you would have to route it out of there with another route.

Upvotes: 1

ntdt
ntdt

Reputation: 300

You can use mod_rewrite in Apache to do the URL rewrite. In the document of CodeIgnitor http://codeigniter.com/wiki/mod_rewrite/ . Basically, you have to define the regular expression to rewrite /arg1/arg2/arg3 to url your_controller/state=arg1&city=arg2&value=arg3 Details of mod_rewrite can be found at http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html

Upvotes: 1

Related Questions