Проблемы с работой ссылок в codeigniter?
<h1>All news</h1>
<?php foreach ($news as $key => $value): ?>
<p><a href="view/<?php echo $value['slug']; ?>"><?php echo $value['title']; ?></a></p>
<?php endforeach ?>
согласно с результатами, показанными в видео, при переходе по ссылке отображается страница с новостью. Адрес страницы kinomonster.com:8080/news/view/news-1
у меня при переходе по ссылке открывается окно по адресу kinomonster.com:8080/views/news-1 с ошибкой 404, причём это с помощью исходного кода
5 ответов
Роутинг настроен верно и локальный домен?
Можно попробовать поставить перед view слеш:
<p><a href="/view/<?php echo $value['slug']; ?>"><?php echo $value['title']; ?></a></p>
У меня так выглядит ссылка и корректно работает:
<p><a href="view/<?php echo $value['slug']; ?>"><?php echo $value['title']; ?></a>
В конфиге config.php (application/config/config.php) написано:
$config['base_url'] = 'http://kinomonster.com/';
Локальный домен киномонстра kinomonster.com без 8080 у меня настроено, если 8080 у вас, вроде нужно в base_url указать.
В роутинге:
$route['news'] = 'news';
$route['news/create'] = 'news/create';
$route['news/edit'] = 'news/edit';
$route['news/delete'] = 'news/delete';
$route['news/(:any)'] = 'news/view/$1';
Я обсуждал этот вопрос https://fructcode.com/ru/qa/pocemu-izmenilas-ssylka-novostej-oepxv/
может это поможет.
В действительности приходить периодически в адресах ссылок дописывать news/, код работает. Когда начинает выдавать ошибки и я вижу ссылку в адресной строке - там лишний news, удаляю с ссылок его и опять работает. Для реального проекта - недопустимая нестабильность работы!
добавляю к предыдущему посту, относительно работы ссылок
при каждом добавлении или удалении с БД через форму новости, происходит изменение ссылки. Например, все работает, добавляю или удаляю новость, новость добавилась/удалилась. После чего появляется ошибка при просмотре/редактировании/удалении новости. Дописываю news/ в ссылки (index.php<-news<-view) - опять начинает все работать. Снова, добавляю или удаляю новость. Происходят изменения в БД. и та же ошибка со ссылками. Теперь нужно удалить news/со ссылок.... Вообщем, в конце модуля сравню код 1-8 урок (создание CRUD-приложения) с исходником и отпишусь в чем же причина проблемы этой!
Взял исходный код автора для тестирования проблем, вышеописанных. Поведение аналогичное со ссылками.
Но я заметил некую закономерность и думаю причина в этом!
Создал CRUD приложение для постов и подключил вывод постов на главную страницу.
Так, например, после нажатия кнопки читать открывается страница просмотра поста по адресу http://kinomonster.com/posts/view/posts-1
Соответственно ссылка на CRUD приложение
http://kinomonster.com/posts
и если я перехожу по ней, то действительно открывается список постов. НО РАБОТА С НИМИ СТАЕТ НЕВОЗМОЖНОЙ (при нажатии просмотр, редактирования - изменяются адреса ссылок). Изначально я действовал, как описывал ранее (периодически, от сбоя к сбою, корректировал адреса). Но все оказалось гораздо проще!
Для корректной работы CRUD приложения (новости, посты) в конце ссылки необходимо ставить / (слеш). То есть,
http://kinomonster.com/posts/
Итак, загрузил страницу http://kinomonster.com/posts - вывелись посты, но далее работать с ними невозможно. В адресной строке добавляю в конец / и перезагружаю страницу и все ГУД.
Возможно, некоторые люди воспринимают данную деталь как само-собой разумеющуюся аксиому, но мне как "новичку" пришлось целую неделю переписывать заново блок с новостями в поисках ошибки в коде, какую я так и не нашел! НО, за ту неделю я приспособился дописывать news/ потом убирать его, чтобы продолжать курс.
Возможно, так себя ведет PHP 7.4.2 (что уже обсуждалось при ошибке NULL, которая у автора отсутствует. Ее удалось мне обойти проверкой isset. XAMPP я не переустанавливал на версию РНР 7.2 (кажется ее рекомендовали)).
Если же дело не в XAMPP и версии PHP, тогда, полагаю, можно дописать файл .htaccess, чтобы по умолчанию дописывался / в конце адреса, в случае его отсутствия! Хотя CDUD приложение работает и в этом случае http://kinomonster.com/posts//edit/posts-1 (два слеша)
Надеюсь, эти наблюдения станут полезны еще для кого-то!
Также, было бы интересно услышать дополнение по данному поводу!
Не помогает