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
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.
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
精彩评论