2

我已经在 CI 用户指南和 Stackoverflow 上搜索了我的问题的解决方案,但找不到。所以,这是我的问题。

我需要建立 SEO 友好的 URL。我有一个名为“Outlets”的控制器,我需要生成的视图将具有类似 http://www.mysite.com/[city]/[area]/[outlet-name] 的 URL 结构。

细分 city 和 area 是它们各自表中的字段,而 outlet_name 是表“Outlets”中的字段。

我能够生成像http://www.mysite.com/outlets/123这样的 URL,但是如何将城市和地区名称添加到 URL。

4

2 回答 2

3

如果您的所有页面都使用相同的控制器,请在 config/routes.php 添加此...

$route['(:any)/(:any)/(:any)'] = "outlets/$1/$2/$3";
$route['(:any)/(:any)/(:any)/(:any)'] = "outlets/$1/$2/$3/$4"; // fixed typo

在控制器中,您将需要重新映射函数调用,因为 Codeigniter 将寻找具有城市名称的函数并且它们不存在。

http://codeigniter.com/user_guide/general/controllers.html#remapping

public function _remap($city, $area, $outlet, $options = '')
{
  $this->some_function_below($city, $area, $outlet, $options);
}
于 2012-06-07T20:03:47.603 回答
0

另一种替代解决方案。

您可以使用 URI 段。对于像 http://www.mysite.com/[city]/[area]/[outlet-name] 这样的网址

<?php

$this->uri->segment(3);  // city
$this->uri->segment(4);  // area
$this->uri->segment(5);  // outlet-name

?>

等等...有关详细信息,请参阅http://codeigniter.com/user_guide/libraries/uri.html 。

于 2012-06-07T20:53:13.267 回答