我正在创建一个社交网站,因为每个个人资料页面都需要使用友好的URL进行展示。
现在它像www.siteprof.com/profile/23
我需要在此网址的末尾添加aditioanl字符串'jake-web-developer'。结果将类似于 www.siteprof.com/profile/23/jake-web-developer 。我知道在创建个人资料链接时可以这样做。但如果有人使用www.siteprof.com/profile/23此链接访问此配置文件,我可以将之前的文本添加到网址吗?
还有什么方法可以从控制器操作中将这些特定字符串添加到url中吗?
答案 0 :(得分:0)
看起来不正确,通过CakePHP约定,它应该看起来像:
**www.siteprof.com/profiles/view/23**
之后,您将profiles_controller设置为具有操作view($id=0,$name="")
我不知道为什么这很重要,但你可以使用name参数生成链接,它仍然可以工作:
www.siteprof.com/profiles/view/23/jake-web-developer
如果添加最后一个字符串很重要,那么您应该在视图控制器中进行重定向。检查是否指定了$ name,如果不是,则重定向到带有名称的URL,尽管我建议不要使用它,因为它会影响性能。
答案 1 :(得分:0)
我的解决方案是在页面中放置自定义重定向标头,如果网址不包含重定向到完整网址的SEO友好标题
一种方法是:
public function view($id = null, $slug = null) {
$data = $this->Profile->findById($id);
if ($slug == null) {
$this->redirect(array('action'=>$view, $id, $data['Profile']['slug']));
}
// .. rest of view logic
}
希望这会有所帮助: - )