【问题标题】:codeigniter route for all controllers所有控制器的codeigniter路由
【发布时间】:2015-03-23 16:21:49
【问题描述】:

我有一个包含不同控制器商店、文章、基本页面(例如关于、主页、常见问题等)的网站

我需要一种方法来像这样在我的网站中显示项目

通常是这样的

www.site.com/category/sub-category/article-title

但我需要这样的

www.site.com/article-title

一般店都是这样的

www.site.com/shops/shop-name

但我会像这样需要它

www.site.com/shop-name
 OR shop-name.site.com

我当前路线规则的摘录

$route['category/(:any)'] = 'ads/cat/$1';
$route['category/(:any)/(:any)'] = 'ads/cat/$1/$2';

$route['shops/(:any)'] = 'shops/$1';
$route['shops/(:any)/(:any)'] = 'shops/$1/$2';

$route['(:any)/(:any)'] = 'site/$1/$2';
$route['(:any)'] = 'site/$1';

【问题讨论】:

  • 你如何区分www.site.com/abc是商品名还是店铺名?
  • 我其实不知道,这就是我问的原因。我见过很多网站都这样做,主要是向卖家提供商店的购物网站
  • 在这种情况下 article(ads) 和 shop(shops) 应该是一个控制器,并且您的控制器将决定它是 article(match from article table) 还是 shop(match from shop table) 并显示相应的视图.希望你理解

标签: php codeigniter routes


【解决方案1】:

看看URI routing。缺点是您必须手动添加每条路线。

$route['article-title'] = 'category/sub-category/article-title'
$route['article/(:any)'] = 'article/$1'

您也可以使用_remap() 在控制器内部尝试remapping

article 这个article 解释得很透彻。

【讨论】:

  • 我通过 webapp cms 发布文章,我每次发布都必须编辑路线吗?
  • 不,如果你正确地完成了你的正则表达式,你不应该这样做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多