Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php codeigniter与搜索引擎优化_Php_Codeigniter_Seo - Fatal编程技术网

Php codeigniter与搜索引擎优化

Php codeigniter与搜索引擎优化,php,codeigniter,seo,Php,Codeigniter,Seo,我正在开发一个使用CodeIgniter的手机网站。我对正则表达式和mod_重写感到很舒服。我的问题是如何在codeigniter中创建这样一个seo友好的url 我可以这样使用category、sub-category等的id来完成 但我正在寻找更清洁的解决方案(如上面的例子) 在这种情况下,路线不适合我,因为该网站的管理员可以创建无限的主要类别(例如mysite.com/phones/mysite.com/tablet/)使用codeigniter的重新映射功能。URI的第二段通常决定调

我正在开发一个使用CodeIgniter的手机网站。我对正则表达式和mod_重写感到很舒服。我的问题是如何在codeigniter中创建这样一个seo友好的url

我可以这样使用category、sub-category等的id来完成

但我正在寻找更清洁的解决方案(如上面的例子)


在这种情况下,路线不适合我,因为该网站的管理员可以创建无限的主要类别(例如mysite.com/phones/mysite.com/tablet/)

使用codeigniter的重新映射功能。URI的第二段通常决定调用控制器中的哪个函数。CodeIgniter允许您通过使用_remap()覆盖此行为

你能做的是:

在控制器中,使函数_remap(){} 现在,在remap函数中,使用URL段获取URL的片段

如果查询是这样的:

您的重新映射应该可以找到“三星”、“手机”和“型号名称”部分。。运行一个查询以获得详细信息(共同响应的ID等),然后瞧,您有一个动态运行的系统


有关更多信息,请检查此项:

我不会这么快放弃路由。控制器方法不必是url中的第二个参数。如果以URL的外观为例,那么在routes.php文件中可以执行以下操作

$route['phones/(:any)/(:any)]=“phones/blah/$1/$2”

在你的“手机”控制器中,你会有一个名为“blah”的功能(也许可以重新命名),手机制造商将是第一个参数,手机型号将是第二个参数。这将适用于所有制造商和所有型号。您不必根据不同的组合使用不同的控制器或方法

如果它不总是电话(例如,它可能是平板电脑)并且您可以有一个类似的url,那么您的routes.php文件将需要类似于$route['(:any)/(:any)/(:any)]=“something/blah/$1/$2/$3”;然后“某物”控制器将具有一个“无意义”功能,该功能将通过电子类型(电话、平板电脑等)、制造商和型号传递

为了使它更简单,正如@Stewie所说,您可以使用_remap()。《用户指南》中有一些关于如何使用它的好文档和示例