переписать или перенаправить на текущую страницу в codeigniter

#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:

Да, это возможно сделать, все, что вам нужно сделать, это следовать инструкциям

  1. Измените свой routes.php файл следующим 404_override образом (замените Errors index методом контроллера)

     $route['404_override'] = 'errors/index';
      
  2. Теперь создайте 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';