好吧,我已经尝试了 3 天,但我似乎无法正确理解。我尝试有条件地回显 URL 段(页码(,前提是该段确实存在于特定网页上。 具体来说,我正在处理标题模板中的规范标签。
背景:
我当前的代码根据需要回显分页目录页面,如下所示:
https://www.example.com/subjects/apples/2
https://www.example.com/subjects/apples/3
https://www.example.com/subjects/apples/4
etc.
它回显不需要的目录主页,如下所示:
https://www.example.com/subjects/apples/
必须保持不变的内容:
分页目录 URL 不以正斜杠结尾,这很好。
必须更改的内容:
目录主页确实以正斜杠结尾,这很糟糕。
现有代码:
<link rel="canonical" href="<?php echo $this->config->item("base_url");?><?php echo $category_in_url;?>/<?php echo $this->uri->segment(2);?>" />
期望的结果:
目录主页不得以正斜杠结尾。 若要停止在目录主页 URL 末尾留下孤立的正斜杠,新代码将回显
/<?php echo $this->uri->segment(2);?>
仅当特定网页实际存在段 2(即页码 2+(时。 第 0 页和第 1 页在 URL 中未收到页码。 因此,从第 2 页开始,我需要呼应该部分。 分页目录页应如下所示:
https://www.example.com/subjects/apples/4
目录主页应如下所示:
https://www.example.com/subjects/apples
注意:您的解决方案必须与我的现有代码一起使用,而不会破坏 PHP。
提前感谢您的大力帮助!
杰森
<link rel="canonical" href="<?php echo $this->config->item("base_url");?><?php echo $category_in_url.((int)$this->uri->segment(2,0) > 1 ? '/'.$this->uri->segment(2) : '');?>" />