首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在代码点火器中将不同页的url重写到同一个url

在代码点火器中将不同页的url重写到同一个url
EN

Stack Overflow用户
提问于 2017-06-13 06:22:14
回答 1查看 164关注 0票数 1

我想用代码点火器重写url。

对于产品页面,我希望更改给定的url。

代码语言:javascript
复制
www.example.com/services/service-name

代码语言:javascript
复制
www.example.com/service-name

对于服务页面,我想从给定的url中更改

代码语言:javascript
复制
www.example.com/products/product-name

代码语言:javascript
复制
www.example.com/product-name

但是链接不起作用。它并没有区分产品和服务网址。令人困惑的是,网址是否与产品或服务有关。应该取哪一页?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-13 08:59:38

首先,通配符路由必须在最后。

代码语言:javascript
复制
$route['some-route'] = 'ctrl/m/$1';
$route['some-other-route'] = 'ctrl/m2/$1';
...
$route['(:any)'] = 'ctrl/m3/$1';

因为

路由将按照定义的顺序运行。较高的路线总是优先于较低的路线。

第二,有不同的路线是很好的方法,因为

  1. 如果您没有像/services//products/这样的段,则需要注意插入,而不是重复不同区域之间的名称(即服务、产品)。
  2. 即使您在insert上对两个表进行代码检查,确保您没有在服务和产品之间复制名称,您仍然需要在每次需要服务或产品时查询这两个表。

在某种程度上,路由工作是从URL获取值的,而应用程序将使用该值来完成一些工作。如果你有路线

代码语言:javascript
复制
https://www.example.com/making-powerplant

应用程序不知道制造发电厂是服务还是产品。因此,如果您对insert数据或insert making-powerplant进行了所有操作,以避免将服务和产品的标题加倍,那么现在您的应用程序应该查询这两个表。首先,它应该查询服务表,看看是否有类似的标题。如果在服务表中找不到标题,应用程序将需要查询products表。这将是冗长的应用程序和代码设计,因为在大多数情况下,您正在进行不需要的查询。但这只是检查来自一个URI段的两个表或两个源的方法。我会坚持/services/service-1/products/product-1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44513720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档