我正在创建一个包含国家/州/城市浏览界面的网站。 出于搜索引擎优化的目的,我想在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类。
是否有标准或最佳实践方法?
答案 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