Как исправить ссылку?
В разделе (Projects) есть список статей: кликаешь на статью - в этой же вкладке открывается соответствующая статья.
Все ссылки на статьи имеют вид
test.ru/statya
и только одна из них почему-то имеет вид
test.ru/projects/statya, хотя вложенность такая же, как у остальных.
В чем здесь может быть дело?
РЕШЕНО: оказывается, в админке у этой статьи в поле "Ссылка на карточку проекта" нужно в начале поставить слэш.
Дополнительные вопросы
rinatoptimus @rinatoptimus Автор вопроса оказывается, в админке у этой статьи в поле "Ссылка на карточку проекта" нужно в начале поставить слэш. Ответы на вопрос 0
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
В такой ситуации причина почти всегда в том, что у одной карточки проекта URL задан не так, как у остальных. Если все элементы ведут на
/statya, а один ведёт на/projects/statya, значит для него либо вручную указан относительный путь без начального слэша, либо шаблон склеивает базовый путь проекта и значение поля.Разница между двумя вариантами важная:
/statya— абсолютный путь от корня сайта;statya— относительный путь от текущего раздела, поэтому на странице/projects/он превращается в/projects/statya.То есть если в поле «Ссылка на карточку проекта» поставить
statya, браузер будет считать ссылку относительной. Если поставить/statya, ссылка пойдёт от корня домена.Проверка простая:
Если это правится кодом шаблона, лучше нормализовать ссылку перед выводом:
$url = trim((string) $url); if ($url !== '' && ! preg_match('~^https?://~i', $url)) { $url = '/' . ltrim($url, '/'); } echo esc_url($url);
Так вы защититесь от повторения ошибки: даже если редактор введёт
statya, на фронте получится корректный путь/statya. Но если ссылка может быть внешней, обязательно оставьте проверку наhttp://иhttps://, чтобы не превратить внешний URL в локальный.