Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: редирект через header()
Форумы портала PHP.SU » » HTTP и PHP » редирект через header()

Страниц (1): [1]
 

1. Роман Валерьевич - 09 Февраля, 2012 - 12:30:39 - перейти к сообщению
Делаю ЧПУ на .htaccess, php, mysql. Редирект осуществляю с помощью функции header("Location: ...");
В итоге переход осуществляется, но при переходе на страницу php адрес в строке браузера меняется. И пропадает весь смысл написанного до. Т.е. ввожу index.html Он перенаправляет на index.php, Но и адрес меняет. Как сделать редирект БЕЗ смены адреса на новый?
2. Мелкий - 09 Февраля, 2012 - 12:49:26 - перейти к сообщению
См. mod_rewrite
3. Роман Валерьевич - 09 Февраля, 2012 - 13:56:56 - перейти к сообщению
Мелкий пишет:
См. mod_rewrite


С помощью mod_rewrite в строке-правиле .htaccess я перенаправляю все запросы к одному файлу php. а там уже динамически определяю какую страницу загрузить. Мне уже из кода PHP необходимо загрузить новую страницу (динамически). Какое отношение mod_rewrite имеет сюда?
4. Мелкий - 09 Февраля, 2012 - 14:10:34 - перейти к сообщению
Ок, пишу подробнее.
Различается 2 вида редиректа:
0) внутренний
1) внешний

О внутреннем редиректе знает только веб-сервер и/или приложение
О внешнем - браузер. Соответственно, меняется адрес в адресной строке.

Любой header - операция внешняя. И редирект силами header'а - внешний. Естественно, влечёт смену адреса в адресной строке.
Внутренний редирект делается с помощью mod_rewrite для запуска чего-то определённого по некоторой маске, а так же в приложении, путём вызова нового контроллера. Разумеется, это если архитектура приложения позволяет сделать внутренний редирект.
5. Роман Валерьевич - 09 Февраля, 2012 - 14:15:23 - перейти к сообщению
Мелкий пишет:
Ок, пишу подробнее.
Различается 2 вида редиректа:
0) внутренний
1) внешний

О внутреннем редиректе знает только веб-сервер и/или приложение
О внешнем - браузер. Соответственно, меняется адрес в адресной строке.

Любой header - операция внешняя. И редирект силами header'а - внешний. Естественно, влечёт смену адреса в адресной строке.
Внутренний редирект делается с помощью mod_rewrite для запуска чего-то определённого по некоторой маске, а так же в приложении, путём вызова нового контроллера. Разумеется, это если архитектура приложения позволяет сделать внутренний редирект.


Спасибо за развернутый ответ!
6. Wolf Bloody - 10 Февраля, 2012 - 07:08:01 - перейти к сообщению
Можно попробовать делать все это через <iframe></iframe>.
7. Роман Валерьевич - 13 Февраля, 2012 - 07:05:30 - перейти к сообщению
Wolf Bloody пишет:
Можно попробовать делать все это через <iframe></iframe>.

В принципе да. Но это, по идее, плохо скажется на индексации.

 

Powered by ExBB FM 1.0 RC1