Qeepp URL beautification之后的Seo问题
一个网站操作部分时间在这种情况下,主题设置可能会更改,这可能会导致URL更改。URL更改的最大问题是先前的连接变为无效,这会导致用户体验不佳并影响搜索引擎'网站索引。因此,我们必须确保以前的URL不无效。
例如,以前的新闻页面URL是http://msplinks.com.cn/mdfodhrwoi8vbxkuy29tlzeymzq1ni5odg1s。我们可以使用URL路由轻松处理此要求。
首先写两条规则:
- #解析并生成新的新闻页面url
- 新闻页面:
- RegEx:'/news/([A-Z]+)/([0-9]+)\。html'
- 配置:
- 类别建站论坛:1
- News_id:2
- 默认值:
- 控制器:新闻
- 行动:显示
- #解析旧新闻页面url
- News_page_keep_old:
- RegEx:'/([0-9]+)\。html'
- 配置:
- News_id:1
- 默认值:
- 控制器:新闻 54 Action:Show 55
CopyCode
前面的规则有更高的优先级。
当请求的URL为http://msplinks.com.cn/MDFodHRwOi8vbXkuY29tLzEyMzQ1Ni5odG1s,以前的规则匹配失败,随后的规则匹配成功。因此,请求被发送到news控制器的“显示操作”方法进行处理,并包含news_id参数。
- 函数actionshow()
- {
- $News_id=intval($Get['News_ id']);
- $News=News:Find($News_id)->get();
- ... 显示新闻内容
- }
**代码
这确保了原始URL的有效性。
然后当请求是http://msplinks.com.cn/MDFodHRwOi8vbXkuY29tL25ld3Mvc3BvcnRzLzEyMzQ1Ni5odG1s,先前的规则将成功匹配,然后将不匹配后续规则。actionshow仍处理该请求。前面的规则有一个额外的类别参数,这里不使用。直接忽略它。但是,此参数是必不可少的,将用于后续URL生成。
现在让'查看模板中的url生成代码:
- URL('news/show',数组(
- #39;新闻id'=>$新闻->id,
- '类别'=>$news->类别名称
- ))
**代码
我们可以看到category参数用于生成URL。因此,前面的规则用于生成URL。最终我们会得到这样的结果http://msplinks.com.cn/MDFodHRwOi8vbXkuY29tL25ld3MvY2Fycy8yMzM0My5odG1s。
现在我们已经完美地解决了这个问题:它不仅确保了前一个URL的有效性,而且还使得访问旧页面后,您可以通过页面中的URL导航到新格式URL。
--------------------------------------
URL根据需要更改
除了Seo,URL路由还允许我们按照自己的方式构建URL地址。例如http://msplinks.com.cn/MDFodHRwOi8vcWVlcGhwLmNvbS9jYXNlcy8xOQ==是:
- Cases_show:
- 模式:"/案例/:ID"
- 默认值:
- 控制器:"案例"
- 操作:"显示"
- 配置:
- ID:"[0-9]+"
**代码
我们改变了规则:
- Cases_show:
- RegEx:'/mygod/show \-me \-the \-money/news \-sports \-(\ D+)\。html'
- 默认值:
- 控制器:"案例"
- 操作:"显示"
- 配置:
- ID:1
**代码
然后URL成为http://msplinks.com.cn/mdfodhrwoi8vCWvlcghwlmnvbs9tewdvzc9zag93lw1llxrozs1tb25les9uzzdzlxnwb3j0lte5lmh0bww=。可以说它类似于以前的URL。
这些修改和更改不需要我们修改应用程序代码和模板代码,唯一需要修改的是规则表。
本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。如若转载,请注明出处:http://www.botadmin.cn/sylc/1687.html