Intereting Posts
Объект класса DateTime не может быть преобразован в строку Получить почтовый индекс пользователя facebook графическим API facebook получить содержание URL-адреса PHP Вставка данных в MySQL из многомерного массива в php PHP Создание UL LI, UL LI обновить определенную запись из списка массива mysql Является ли CGI все еще медленным при использовании с компилируемой программой, которая не требует виртуальной машины? PHP устанавливает активную ссылку на странице, используя Как добавить дочернюю вкладку onclick кнопки в Yii framework? Как запустить команду Symfony Console после установки композитора? Категории списков и их сообщения из пользовательского типа сообщения Таблица MySQL, заполняющая один dropdown. После выбора, выпадающее второе выселение Почему эти Heredoc и Nowdoc вызывают ошибки? Выберите все записи, используя MySQL LIMIT и OFFSET запрос Как отображать категории и конечные подкатегории с помощью PHP и MySQL?

Перенаправление с помощью CodeIgniter

Может ли кто-нибудь сказать мне, почему мой помощник перенаправления не работает так, как я ожидал? Я пытаюсь перенаправить на индексный метод моего основного контроллера, но мне требуется www.mysite.com/index/provider1/ когда он должен перейти на сайт www.mysite.com/provider1 . Это имеет смысл для всех? У меня индексная страница в config установлена ​​в пустую, хотя я не думаю, что это проблема. Кто-нибудь есть советы по устранению этой проблемы? Заранее спасибо!

Контроллер :

 if($provider == '') { redirect('/index/provider1/', 'location'); } 

.htaccess :

 RewriteEngine on RewriteCond %{REQUEST_URI} !^(index\.php|files|images|js|css|robots\.txt|favicon\.ico) RewriteCond %{HTTP_HOST} ^mysite.com/ttnf/ RewriteRule (.*) http://www.mysite.com/ttnf/$1 [R=301,L] RewriteBase /ttnf/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] php_flag display_errors On 

перенаправление ()

Помощник URL


Оператор перенаправления в воспламенителе кода отправляет пользователя на указанную веб-страницу с помощью оператора заголовка перенаправления.

Этот оператор находится в помощнике URL, который загружается следующим образом:

 $this->load->helper('url'); 

Функция перенаправления загружает локальный URI, указанный в первом параметре вызова функции, и создается с использованием опций, указанных в вашем файле конфигурации.

Второй параметр позволяет разработчику использовать разные HTTP-команды для выполнения перенаправления «location» или «refresh».

Согласно документации Code Igniter: «Место выполняется быстрее, но на серверах Windows это может иногда быть проблемой».

Пример:

 if ($user_logged_in === FALSE) { redirect('/account/login', 'refresh'); } 

Если ваша структура каталогов выглядит так,

 site application controller folder_1 first_controller.php second_controller.php folder_2 first_controller.php second_controller.php 

И когда вы собираетесь перенаправить его в тот же контроллер, в котором вы работаете, просто напишите следующий код.

  $this->load->helper('url'); if ($some_value === FALSE/TRUE) //You may give 0/1 as well,its up to your logic { redirect('same_controller/method', 'refresh'); } 

И если вы хотите перенаправить на другой элемент управления, используйте следующий код.

 $this->load->helper('url'); if ($some_value === FALSE/TRUE) //You may give 0/1 as well,its up to your logic { redirect('folder_name/any_controller_name/method', 'refresh'); } 

Если вы хотите перенаправить предыдущее местоположение или последний запрос, вам необходимо включить библиотеку user_agent :

 $this->load->library('user_agent'); 

а затем использовать, наконец, в функции, которую вы используете:

 redirect($this->agent->referrer()); 

он работает для меня.

Вот файл .htacess, который скрывает индексный файл

 #RewriteEngine on #RewriteCond $1 !^(index\.php|images|robots\.txt) #RewriteRule ^(.*)$ /index.php/$1 [L] <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / # Removes index.php from ExpressionEngine URLs RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC] RewriteCond %{REQUEST_URI} !/system/.* [NC] RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L] # Directs all EE web requests through the site index file RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] </IfModule> 

во-первых, вам нужно загрузить URL-помощник, подобный этому типу, или загрузить файл autoload.php:

 $this->load->helper('url'); if (!$user_logged_in) { redirect('/account/login', 'refresh'); }