如何在codeigniter网址中组织国家/州/城市浏览

时间:2014-06-13 13:05:07

标签: codeigniter codeigniter-routing

我正在创建一个包含国家/州/城市浏览界面的网站。 出于搜索引擎优化的目的,我想在URL中包含国家/州/州的名称。 例如,URL可能包含其他变量,如下所示:

http://www.domain.com/USA/NewYork?Category=car&color=black&Model=2009&page=5

http://www.domain.com/Spain/Allcity?Category=car&color=black&Model=2009&page=20

我需要将此功能融入CodeIgniter。我不确定如何组织主要组件,特别是Controller,可能还有Library类。

是否有标准或最佳实践方法?

1 个答案:

答案 0 :(得分:3)

修改配置文件夹中的routes.php文件。

如Bora(CI URI Routing)链接中所述,文档中的一些示例:

$route['journals'] = "blogs";
//A URL containing the word "journals" in the first segment will be remapped to the "blogs" class.

$route['blog/joe'] = "blogs/users/34";
//A URL containing the segments blog/joe will be remapped to the "blogs" class and the "users" method. The ID will be set to "34".

在您的情况下,您需要协调控制器中的功能名称和所需的URL名称。您可能最终得到您在问题中显示的示例,但您必须在domain.com之后的第一个URI段中为您想要的每个国家/地区布置路线。它可能更容易做到这一点:

http://www.domain.com/locations/USA/NewYork?Category=car&color=black&Model=2009&page=5

然后在你的路线文件夹中:

$route['locations/(.*)/(.*)'] = 'locations';

如果您需要通过URL将其他参数传递给控制器​​,可以使用上面显示的查询字符串,或者添加

$route['locations/(.*)/(.*)/([0-9]{1,5})'] = 'locations/$1';
//assumes that parameter is numeric, 0-9 up to 5 digits