CodeIgniter PHP: как отобразить сегмент URL, только если этот сегмент действительно существует - PullRequest
0 голосов
/ 13 января 2020

Хорошо, я пытался выяснить это в течение 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-адреса страниц с разбивкой по страницам НЕ заканчиваются на forward sla sh, что хорошо.

ЧТО ДОЛЖНО ИЗМЕНИТЬСЯ:

Домашние страницы каталога ДОЛЖНЫ заканчиваться прямым sla sh, что плохо.

СУЩЕСТВУЮЩИЙ КОД:

<link rel="canonical" href="<?php echo $this->config->item("base_url");?><?php echo $category_in_url;?>/<?php echo $this->uri->segment(2);?>" />

ЖЕЛАЕМЫЙ РЕЗУЛЬТАТ:

Домашние страницы каталогов НЕ ДОЛЖНЫ заканчиваться впереди sh. Чтобы не оставлять за сиротами переадресацию sh в конце 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.

Заранее благодарим за вашу благодарную помощь!

Джейсон

1 Ответ

1 голос
/ 13 января 2020
<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) : '');?>" />
...