#php #.htaccess #codeigniter #redirect
#php #.htaccess #codeigniter #перенаправление
Вопрос:
привет, ребята, я хочу спросить, возможно ли переписать или перенаправить на URL текущей страницы, если мы изменим нашу страницу ссылок вручную в строке ссылок?
пример :
наша текущая ссылка www.example.com/example/data-data/link-link
затем я изменяю эту текущую ссылку в строке ссылок на :
www.example.com/example/data-data/link-li
чем
если ссылка была изменена, будет
перенаправить на www.example.com/example/data-data/link-link
если это возможно, пожалуйста, подскажите мне, как это сделать
Спасибо
Ответ №1:
Да, это возможно сделать, все, что вам нужно сделать, это следовать инструкциям
-
Измените свой
routes.php
файл следующим404_override
образом (заменитеErrors
index
методом контроллера)$route['404_override'] = 'errors/index';
-
Теперь создайте
Errors
контроллер сindex
методом в вашем каталоге контроллеров со следующим кодомdefined('BASEPATH') OR exit('No direct script access allowed'); class Errors extends CI_Controller { public function index() { redirect($this->router->fetch_class()); } }
Теперь, когда вы просматриваете любую неправильную ссылку, она перенаправляет вас на соответствующий контроллер, откуда вы вводите ошибку.
Комментарии:
1. таким образом, если эта ссылка направлялась на страницу с ошибкой, верно?, как насчет того, чтобы не переходить на страницу с ошибкой? пример
base_url/controller/controller_path/variable_pass
, чем я меняю переменную, я думал, что она не перейдет на страницу ошибок, верно?2. если переменная изменилась, вы все равно можете отправить сообщение на страницу ошибки, если запись не существует в базе данных, используя
show_404()
функцию3. я получил сообщение «Страница перенаправляется неправильно»
4. вы должны установить
show_404()
функцию в своемdata-data
контроллере, когда запись не существует. Возможно, вы используете его вErrors
контроллере, поэтому это вызывает проблему
Ответ №2:
Да, это возможно в codeigniter, вам нужно только проложить маршрут для этой ссылки, после чего вы можете перенаправлять куда угодно.
В codeigniter версии 3 :-
Файл находится в :- applicationconfigroutes.php
создайте свой маршрут и укажите, какой контроллер вы хотите запустить.
$route['example/data-data/link-li'] = 'your controller name';