Перенаправления в PHP - PullRequest
       14

Перенаправления в PHP

0 голосов
/ 01 августа 2011

Если я хочу перенаправить пользователя в PHP, все, что я когда-либо знал, это использовать заголовок ('Location:' http://www.example.com), но я читал, что это не лучший способ перенаправить пользователя со страницы на страницу изнутри. Какие еще варианты вы можете перенаправить пользователю?

Пример: внизу написано:

Что-то, что важно запомнить
... Я не рекомендую, например, использовать header (), чтобы перенаправлять пользователей на разные страницы; Есть лучшие методы, которые уменьшают количество загрузок страниц и дают пользователю более плавный опыт ...

http://tinsology.net/2009/06/creating-a-secure-login-system-the-right-way/

Ответы [ 5 ]

1 голос
/ 01 августа 2011

Предоставленный вами фрагмент относится к проблемам, при которых page1.php может выполнить некоторый код, после которого следует header('Lodation: <a href="http://www.example.com/page2.php" rel="nofollow">http://www.example.com/page2.php</a>');, а где page2.php затем выполняет некоторый код, после которого следует header('Location: <a href="http://www.example.com/page3.php" rel="nofollow">http://www.example.com/page3.php</a>'); и т. Д. Это очень плоходля пользовательского опыта, и не очень хорошо для управления кодом.

В случаях, когда вам действительно нужно для перенаправления пользователя (301 перенаправление, вероятно, является наиболее распространенным), использование headerвполне приемлемо.

1 голос
/ 01 августа 2011

Это не плохо. Тем не менее, вы можете добавить код ответа 301, чтобы сделать его еще лучше, также лучше для Google определить, что он больше не должен посещать этот «старый» сайт.

<?php
Header( "HTTP/1.1 301 Moved Permanently" ); 
Header( "Location: http://www.new-url.com" ); 
?> 
0 голосов
/ 01 августа 2011

Всегда разумно избегать использования header() внутри, потому что иногда заголовки уже вызваны. JavaScript перенаправления абсолютно хороши и используются систематически во многих веб-приложениях. Браузеры и поисковые системы не распознают и не любят перенаправления JavaScript. Простой пример:

<?php echo '<script type="text/javascript">window.location.href="index.php"</script>'; ?>

Или используя переменную:

<?php echo '<script type="text/javascript">window.location.href="' . $page . '"</script>'; ?>
0 голосов
/ 01 августа 2011

Просто используйте

header("Location: http://www.example.com");
0 голосов
/ 01 августа 2011

Это принятый метод для перенаправления на основе PHP.Если вы можете выполнить перенаправление до выполнения сценария PHP, то вам следует - через .htaccess или псевдонимы на уровне сервера.

Ознакомьтесь с руководством по header: http://php.net/manual/en/function.header.php

...