Php редирект


  1. SEO Блог
  2. Создание сайта

2011-08-23

Редирект, возвращающий код 301 сообщает браузерам и поисковым системам, что искомая страница перемещена навсегда (moved permanently) и перенаправляет на ее новый адрес. Такой редирект чаще всего используется при переносе сайта с одного домена на другой, и позволяет сохранить весь ссылочный вес и параметры сайта.

Если вам нужно сделать 301 редирект страницы или домена, а доступ к файлу htaccess отсутствует, не стоит ругать и поносить своего хостера и тот день когда вы оплатили этот **** хостинг.
Для случаев когда 301 htaccess редирект не возможен, можно использовать редирект на PHP.

PHP редирект домена

Для того, чтобы сделать перенаправление с одного домена на другой с сохранением всех параметров запроса (в том числе адреса целевой страницы), в текстовом редакторе создаем файл с расширением: .php (называем его index.php) и вставляем туда следующий код, не забывая вставить свое доменное имя:


<?
$ref=$_SERVER["QUERY_STRING"];
if ($ref!="") $ref="?".$ref;
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://newdomain.ru/".$ref);
exit();
?>

После этого, закачиваем этот файл через FTP на сервер с которого вы будете перенаправлять посетителей и поисковиков.

PHP редирект одной страницы

Чтобы сделать редирект с одной страницы на другую в пределах одного либо разных доменов, перед основным кодом перенесенной страницы вставляем:

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.newdomain.ru/newcategory/newpage.htm");
exit();
?>

Страница в которую бы вставляете этот код должна иметь расширение .php, в противном же случае вам следует воспользоваться htaccess редиректом для перенаправления пользователей и поисковиков.

Читайте также: php домены редиректы

  • Бесплатная и быстрая CMS для вашего блога
  • Как дешевле купить качественные статьи — советы копирайтера со стажем
  • Копирайтинг — Уникальный контент для сайта чужими руками
  • Английский МФА — Начало завоевания англоязычного интернета
  • Запрет доступа к сайту с домена или IP
  • Платный хостинг бесплатно
  • Купить домен просто, а выбрать ему имя тяжело
  • Полный текст RSS новостей из сокращенного фида
  • Собственный Дискус или комментарии отдельно от поста
  • Самостоятельное создание логотипа для сайта онлайн

seodiz.ru

Что за редирект?

В веб-программировании возникают ситуации, когда нужно перенаправить пользователя, переходящего по ссылке, на другой адрес. Конечно, на первый взгляд реализация такого перенаправления выглядит немного «незаконной». На практике же, такой редирект востребован не только среди злоумышленников, но и среди честных вебмастеров:

В каких случаях может потребоваться редирект:

  • Когда происходит замена движка сайта – в результате этого меняется архитектура всего ресурса. После чего возникает проблема, как сделать редирект;
  • При перекройке структуры ресурса – происходит добавление, удаление или перенос целых разделов или одного материала. Пока происходит этот процесс, временно можно организовать перенаправление пользователя на нужный раздел;
  • Если сайт недавно сменил свое доменное имя – после смены имени домена старое еще некоторое время будет фигурировать в поисковой выдаче. В этом случае редирект пользователя на новый домен будет реализован поисковой системой автоматически;
  • В процессе авторизации – как правило, на большом сайте есть две группы пользователей: обычные посетители и администраторы ресурса. В таком случае имеет смысл реализовать редирект каждого пользователя согласно его правам и роли. После авторизации администратор или модераторы сайта попадают в административную часть ресурса, а посетители – на пользовательскую часть ресурса.

Особенности редиректа на php

В отличие от других языков php обладает некоторыми преимуществами в реализации редиректа:

  • Php является серверным языком программирования. Поэтому перенаправление будет происходить не в html коде страниц, отображаемых в браузере, а в скрипте, размещенном на сервере;
  • Редирект на php может быть реализован несколькими способами. Что во многом расширяет его применение;
  • Благодаря обработке данных на сервере перенаправление, реализованное с помощью php, менее восприимчиво к действию фильтров поисковых систем.

Для редиректа в php используется функция header(). Она применяется для отправки заголовка http. Ее синтаксис:

Принимаемые функцией аргументы:

<ul>
<li><b>string $string</b> – строка заголовка;</li>
</ul>

  • bool $replace – является необязательным атрибутом типа bool. Отвечает за переопределение предыдущего заголовка. Если будет задано true, то предыдущий заголовок или заголовки одного типа будут заменены. Если в аргументе задано false, то перезапись заголовка не состоится. По умолчанию, задано значение true;
  • http_response_code – аргумент принудительно устанавливает код ответа HTTP. Установка кода пройдет успешно при условии, что аргумент string не будет пустым.

При использовании функции header() для редиректа внешних ссылок большое значение имеет место расположения ее вызова. В коде он должен находиться выше всех тегов html:

Применение редиректа header()

Для демонстрации действия функции на локальном сервере нужно создать два файла. Один из них назовем redirect.php, а другой redirect2.php. Внутри первого разместим вызов функции в следующем формате:

В другом файле помещаем строку:

Еще несколько практических примеров использования редиректа на php:

  • Принудительная передача кода состояния http – при использовании первого аргумента функции header() типа «location» по умолчанию в заголовок передается код состояния «302» (временно перемещен). Это может стать проблемой при переносе ресурса на другое доменное имя. В поисковиках такое временное перенаправление может затянуться. Ведь поисковик постоянно анализирует код состояния. А в нем записано «временно перемещен». Пример принудительной перезаписи кода состояния «302» на «301» (постоянно перемещен):

Также перезапись возможна в два этапа. Первая строка производит перезапись кода состояния, а вторая перенаправляет на новый адрес:

  • Использование редиректа внешних ссылок для перенаправления в зависимости от роли пользователя. Роль определяется во время процедуры аутентификации. Значение для обработки записывается в переменную $who:

  • Упрощенный практический пример реализации редиректа внешней ссылки – клик по ссылке ведет на страницу php. Отсюда пользователя через 5 секунд перекидывает на Рамблер. Код html:

Код файла redirect3.php:

Ну, вот мы и научились основам редиректа на php. Теперь можно смело браться за перенаправление пользователей в нужное русло. Главное не ошибиться в направлении, а то приведете всех своих юзеров на чужой сайт…

www.internet-technologies.ru

After lots of research and testing, I'd like to share my findings about my problems with Internet Explorer and file downloads.

  Take a look at this code, which replicates the normal download of a Javascript:

<?php
if(strstr($_SERVER["HTTP_USER_AGENT"],


span class="default">header("Content-Length: ".filesize("my-file.js"));
} else {
 
header("Content-type: application/force-download");
 
header("Content-Disposition: attachment; filename="download.js"");
 
header("Content-Length: ".filesize("my-file.js"));
}
hea.

n>header("Cache-Control: no-cache");
 
header("Pragma: no-cache");
}
include(
"my-file.js");
?>

Now let me explain:

  I start out by checking for IE, then if not IE, I set Content-type (case-sensitive) to JS and set Content-Disposition (every header is case-sensitive from now on) to inline, because most browsers outside of IE like to display JS inline. (User may change settings). The Content-Length header is required by some browsers to activate download box. Then, if it is IE, the "application/force-download" Content-type is sometimes required to show the download box. Use this if you don't want your PDF to display in the browser (in IE). I use it here to make sure the box opens. Anyway, I set the Content-Disposition to attachment because I already know that the box will appear. Then I have the Content-Length again.


  Now, here's my big point. I have the Cache-Control and Pragma headers sent only if not IE. THESE HEADERS WILL PREVENT DOWNLOAD ON IE!!! Only use the Expires header, after all, it will require the file to be downloaded again the next time. This is not a bug! IE stores downloads in the Temporary Internet Files folder until the download is complete. I know this because once I downloaded a huge file to My Documents, but the Download Dialog box put it in the Temp folder and moved it at the end. Just think about it. If IE requires the file to be downloaded to the Temp folder, setting the Cache-Control and Pragma headers will cause an error!

I hope this saves someone some time!
~Cody G.

php.net

PHP redirect

Redirect или перенаправление на другую страницу в PHP осуществляется путем отправки специального HTTP заголовка функцией header:

<?php header('Location: http://www.tigir.com/php.htm'); exit; ?>

Редирект с задержкой можно сделать так:

<?php header('Refresh: 3; URL=http://www.tigir.com/php.htm'); echo 'Через 3 сек. вы будете перенаправлены на новую страницу.'; exit; ?>

ВАЖНО!!! Заголовки функцией header нужно отправлять до любого вывода текста в браузер! Даже перед <?php не должно быть пробелов!

Смотрите также javascript redirect и redirect html, редирект с помощью htaccess.

Определение тИЦ


Для определения Яндекс тИЦ (тИЦ — тематический индекс цитирования) пойдем тем же путем что и расширение Яндекс.Бар. Чтобы проверить тИЦ Яндекс.Бар посылает запрос по адресу http://bar-navig.yandex.ru/u?ver=2&show=32&url=http://www.сайт.ru и получает XML документ следующего вида:

<urlinfo> 	<url domain="www.сайт.ru">/</url> 	<tcy rang="4" value="250"/> 	<topics> </topics> 	<textinfo> </textinfo> </urlinfo> 

Значение тИЦ — это значение аттрибута value элемента tcy, вот его и нужно выдрать из документа, а как смотрите ниже:

<? function getTCY($url) {  //считываем XML-файл с данными  $xml = file_get_contents('http://bar-navig.yandex.ru/u?ver=2&show=32&url='.$url);   //если XML файл прочитан, то возвращаем значение параметра value, иначе возвращаем false - ошибка  return $xml ? (int) substr(strstr($xml, 'value="'), 7) : false; } ?> 

Теперь чтобы узнать тИЦ Яндекса нужно вызвать функцию getTCY и передать ей в качестве параметра URL сайта:

$tcy = getTCY('http://www.tigir.com');

Определение pagerank

Google PageRank можно получить с помощью PHP-скрипта pagerank.php, использующего алгоритма расчета разработанный Google Community. Скачайте скрипт и сохраните у себя на сайте. Пример использования смотрите ниже:


<?php  require('pagerank.php');  $url = "www.tigir.com";
echo "PageRank страницы ".$url.": ".getrank($url); ?>

Страница с описанием скрипта на английском — Google PR Calculator — Free PHP PageRank Script.

Как вычислить ETag как в Apache?

function get_file_etag($filename) {  return sprintf('%x-%x-%x', fileinode($filename), filesize($filename), filemtime($filename) ); }

См. так же в FAQ — Разное вопрос: «Для чего нужен ETag заголовок HTTP, который выдает Apache и как он формируется?»

Как использовать в качестве callback функции метод объекта?

Многие функции PHP (array_map, array_filter, array_reduce, array_walk …) принимают в качестве параметра функцию обратного вызова (callback-функцию). Чтобы передать встроенную или определенную пользователем функцию как callback, нужно просто передать её имя.

function my_func() { ... }  $a = array_map('my_func', $arr);

Но в качестве callback-функций могут быть использованы не только простые функции, а также методы объектов, и статические методы классов. Чтобы передать в качестве callback-функции метод объекта (именно объекта, который созданн посредством оператора new), нужно передать массив вида: array(&$obj, «имя метода»). Оператор ссылки (&) при использовании метода объекта в качестве callback-функций обязателен только в PHP4, в PHP5 оператор ссылки (&)не нужен.

class MyClass {  function my_func()  {  ...  } }  $obj = new MyClass(); $a = array_map(array(&$obj, 'my_func'), $arr); 

В случае статического метода класса, вместо объекта используется имя класса: array(«имя класса», «имя метода»).

$a = array_map(array('MyClass', 'my_func'), $arr);

Как определить IP-адрес пользователя учитывая прокси-сервер?

function getip() {  if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"),"unknown"))  $ip = getenv("HTTP_CLIENT_IP");   elseif (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))  $ip = getenv("HTTP_X_FORWARDED_FOR");   elseif (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))  $ip = getenv("REMOTE_ADDR");   elseif (!empty($_SERVER['REMOTE_ADDR']) && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))  $ip = $_SERVER['REMOTE_ADDR'];    else  $ip = "unknown";    return($ip); }

Как узнать имя функции php?

Во время выполнения функции становится доступной предопределенная константа __FUNCTION__, содержащая имя функции.

<? function my_func() { 	echo __FUNCTION__; } my_func(); ?> 

В результате работы скрипта будет выведена строка "my_func".

См. так же: пять волшебных констант PHP

Как определить выполняется ли скрипт под Windows или нет?

Данную информацию можно получить и из константы PHP_OS, которая указывает на ОС, под которой производилась сборка PHP.

 if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { //Win } else { //другая ОС } 

Чтобы узнать ОС на которой выполняется интерпретатор PHP в данный момент используйте функцию php_uname, которая, к тому же, возвращает информацию об операционной системе в более полном виде, что так же может понадобиться.

Ещё одним способом, с помощью которого можно определить операционную систему, является использование переменных окружения специфичных для данной ОС. Например, во всех версиях Windows присутствует переменная среды окружения с именем COMSPEC, содержащая путь до командного интерпретатора (cmd.exe или command.com), следовательно присутствие данной переменной среды позволяет определить, где запущен сценарий.

if (getenv('COMSPEC')) { //Win } else { //другая ОС }

Как отменить магическое действие magic quotes?

При включенной директиве конфигурации magic_quotes_gpc PHP автоматически добавляет слеши к строковым значениям в массиве $GLOBALS (это относится не только к данным в $_POST, $_GET, $_COOKIE, $_REQUEST, но и к данным в $_SERVER, $_FILES, $_ENV, $_SESSION). В добавок, при включенной директиве magic_quotes_runtime, слеши добавляются к данным полученым во время работы скрипта (например, из файла, базы данных). И как показывает практика, зачастую, эта магия оказывается «медвежьей» услугой. Проще всего, конечно, отключить директивы в php.ini или через .htaccess, прописав php_flag magic_quotes_gpc 0 и php_flag magic_quotes_runtime 0, однако если нужно создать приложение, которое независит от настроек PHP, тогда нужно выполнить ряд антимагических действий вручную. С magic_quotes_runtime все просто, для его отключения в начале скрипта прописываем set_magic_quotes_runtime(0); и все, а для magic_quotes_gpc нужны заклинания более суровые: нужно проверить состояние директивы magic_quotes_gpc и если она включена, пробежаться по глобальным массивам и сделать stripslashes, например так как показано ниже.

if ( get_magic_quotes_gpc() ) {  function stripslashes_deep($value) {  if( is_array($value) )  {  $value = array_map('stripslashes_deep', $value)  }  elseif ( !empty($value) && is_string($value) )  {  $value = stripslashes($value);  }  return $value;  }   $_GET = stripslashes_deep($_GET);  $_POST = stripslashes_deep($_POST);  $_COOKIE = stripslashes_deep($_COOKIE);  $_REQUEST = stripslashes_deep($_REQUEST);  $_SESSION = stripslashes_array($_SESSION);  $_SERVER = stripslashes_deep($_SERVER);  $_FILES = stripslashes_deep($_FILES);  $_ENV = stripslashes_deep($_ENV); }

P.S.: В 6 версии PHP от магических закавычиваний отказались и оставленные в целях обратной совметимости get_magic_quotes_gpc и get_magic_quotes_runtime будут всегда возвращать false.

Как получить список всех локалей сервера (locale, locale linux, freebsd locale, php locale, russian locale)?

Для Linux

<?php //для вывода всех локалей  system('locale -a');  //для вывода русских локалей  system('locale -a | grep ru'); ?> 

Для FreeBSD

<?php //для вывода всех локалей  system('ls /usr/share/locale');  //для вывода русских локалей system('ls /usr/share/locale | grep ru'); ?> 

PHP список файлов

Список файлов в директории

scandir — Получить список файлов и каталогов в отсортированном виде (по умолчанию, сортировка в алфавитном порядке по возрастанию). Функция появилась в PHP5.

$file_list = scandir('/tmp'); // или для сортировки по убыванию так: $files2 = scandir($dir, 1);   /* Результатом будет нечто вроде: Array (     [0] => .     [1] => ..     [2] => bar.php     [3] => foo.txt     [4] => somedir ) */ 

Если ещё используете PHP4, то смотрим в сторону opendir, readdir или dir.

Список файлов с определенным расширением

glob — Функция glob() ищет все пути, совпадающие с заданным шаблоном (функция поддерживает различные флаги — смотрим документацию).

$file_list = glob("./img/*.png"); // получить все PNG файлы из каталога ./img

www.tigir.com

To redirect the visitor to another page (particularly useful in a conditional loop), simply use the following code:

<?php  header('Location: mypage.php');  ?> 

In this case, mypage.php is the address of the page to which you would like to redirect the visitors. This address can be absolute and may also include the parameters in this format: mypage.php?param1=val1¶m2=val2)

Relative/Absolute Path

When dealing with relative or absolute paths, it is ideal to choose an absolute path from the root of the server (DOCUMENT_ROOT). Use the following format:

<?php  header('Location: /directory/mypage.php');  ?> 

If ever the target page is on another server, you include the full URL:

<?php  header('Location: http://www.ccm.net/forum/');  ?>  

HTTP Headers

According to HTTP protocol, HTTP headers must be sent before any type of content. This means that no characters should ever be sent before the header — not even an empty space!

Temporary/Permanent Redirections

By default, the type of redirection presented above is a temporary one. This means that search engines, such as Google, will not take the redirection into account when indexing.

If you would like to notify search engines that a page has been permanently moved to another location, use the following code:

<?  header('Status: 301 Moved Permanently', false, 301);  header('Location: new_address');  ?> 

For example, this page has the following code:

<?  header('Status: 301 Moved Permanently', false, 301);  header('Location: /pc/imprimante.php3');  exit();  ?> 

When you click on the link above, you are automatically redirected to this page. Moreover, it is a permanent redirection (Status: 301 Moved Permanently). So, if you type the first URL into Google, you will automatically be redirected to the second, redirected link.

Interpretation of PHP Code

The PHP code located after the header() will be interpreted by the server, even if the visitor moves to the address specified in the redirection. In most cases, this means that you need a method to follow the header() function of the exit() function in order to decrease the load of the server:

<?  header('Status: 301 Moved Permanently', false, 301);  header('Location: address');  exit();  ?> 

stackoverflow.com

На страницах сайтов постоянно что-то добавляется, удаляется и обновляется, чтобы в поисковиках была только актуальная информация и нужные страницы не выпадали из поиска применяются редиректы. Также редиректы используются после отправки форм чтобы не было возможности отправить форму несколько раз.

Итак, сделать 301-й редирект можно так: 

header('Location: http://site.com', true, 301);  exit();

Но функция header не сработает если до ее вызова в браузер уже выводился какой-то контент и вызовет ошибку:

Warning: Cannot modify header information — headers already sent by…

Исправить ее можно использовав буферизацию вывода добавив в самое начало скрипта ob_start();

Также можно подстраховаться добавив JS редирект и ссылку если функция header() не сработает.

header('Location: http://site.com', true, 301);  echo "<script>window.location.replace('http://site.com');</script>";  echo 'Перенаправление… Перейдите по <a href="http://site.com">ссылке</a>.';  exit();  

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

function redirect($url, $code = 301)  {   header('Location: ' . $url, true, $code);   echo "<script>window.location.replace('" . $url . "');</script>";   echo 'Перенаправление… Перейдите по <a href="' . $url . '">ссылке</a>.';   exit();  }    // В index.php  if ($_SERVER['REQUEST_URI'] == '/url-old') {   redirect('http://site.com/url-new');  }

Если редиректов много:

$urls = array(   array('/url-old-1', 'http://site.com/url-new-1'),    array('/url-old-2', 'http://site.com/url-new-2'),    array('/url-old-3', 'http://site.com/url-new-3'),  );     foreach ($urls as $row) {   if ($_SERVER['REQUEST_URI'] == $row[0]) {   redirect($row[1]);   }  }

snipp.ru

redirect Как сделать редирект 301?Редирект (от англ. redirect – переориентировать) – это переадресация страницы сайта на какую-то другую страницу или другой сайт. Редирект можно сделать различными способами, основные из которых и будут здесь рассмотрены., а именно redirect на php, javascript, редирект при помощи html и при помощи файла htaccess.

Среди перечисленных способов, наиболее актуальными являются php redirect и редирект при помощи .htaccess. Дело в том, что именно эти способы позволяют не только переадресовать страницу, но и вернуть специальную 301 ошибку (301 Permament Redirect). Для чего же это нужно? А нужно это для поисковых систем.

Допустим у нас был раскрученный сайт с большим числом посетителей. Затем сайт был перемещён на новый домен. Поисковая система его ещё не знает. 301 редирект позволяет как бы “склеить” старый и новый адрес, сохранив при этом все те элементы оптимизации, которые были сделаны для этого сайта, тем самым сохранив посещаемость и аудиторию самого сайта.

А теперь рассмотрим все перечисленные варианты редиректов, и начнём с редиректа на php.

PHP redirect (301)

Редирект на php, как и на других языках программирования, основан на спецификации протокола HTTP, а именно отправки необходимых заголовков. Как это работает? Довольно просто. Каждый раз, когда мы обращаемся к какой-то странице интернета, мы получаем HTTP ответ от сервера, который содержит заголовки (header) и тело (body). В теле ответа

Редирект HTML

В языке разметки HTML есть специальный мета-тег, предназначенный для переадресации.

Изменяется только поле content, где указывается количество секунд до переадресации и собственно ссылка, куда будет производиться редирект. Думаю не стоит говорить, что тег помещается в html-код между тегами head.

Редирект JavaScript

Пожалуй самый ненадёжный редирект, поскольку пользователь всегда может отключить javascript в браузере. Делается это, правда, нечасто, поэтому способ имеет право на существование.

В данном коде создаётся функция с переадресацией на нужную страницу, а затем вызывается в функции setTimeout, что позволяет произвести переадресацию спустя необходимое время.

Редирект htaccess (301)

Файл .htaccess – это служебный файл с различными дополнительными настройками сервера Apache. Размещается он вручную, в нашем случае, в корне сайта. С его помощью можно устраивать 301 редиректы, однако для этого в Апаче должны быть включены необходимые модули.

Использование директив модуля mod_alias

В данном модуле существуют три директивы: Redirect, RedirectPermanent и RedirectMatch. Первые две вроде как идентичны по своим свойства, третья идёт особняком. Для первых двух пример:

Строчки схожи. Но вроде как существует один минус – чтобы перенаправить все страницы, нужно их все и будет указать в списке. Чтобы как-то облегчить задачу, существует та другая директива:

Можно задавать регулярные выражения для переадресации со старого урла на новый.

Использование директив модуля mod_rewrite

Чтобы не было двоякочтения одних и тех же страниц у поисковиков, иногда нужно переправить все адреса с домена без www на домен с www. Например,

shublog.ru

Заголовок языка PHP функции

Например, предположим, вы хотите сделать редирект к этому URL http://www.somewebsite.com/target.php. В исходном PHP страницы, Вам просто следует вызвать этот скрипт редиректа:

  <?php    header('Location: http://www.somewebsite.com/target.php');    ?>  

Попробуйте также провести этот простой эксперимент на вашем локальном хостинге:

1) Откройте текстовый редактор и введите этот код:

  <?php    echo "Hi this is codex-x";    ?>  

Сохраните его как targetpage.php.

2) Откройте другой пустой текстовый файл и введите этот код:

  <?php    header('Location: http://localhost/targetpage.php');    ?>  

Сохраните его как originatingpage.php.

3) Теперь запустите веб-браузер. В адресной строке браузера введите: http://localhost/originatingpage.php

4) Вы заметите, что после нажатия кнопки ввода, этот URL: http://localhost/originatingpage.php делает редирект на http://localhost/targetpage.php и на targetpage.php, и вы видите слова «Hi this is codex-x».

Одна из самых распространенных ошибок может крыться в оформлении кода html редиректа:

Попробуйте выполнить этот эксперимент:

Перейдите к скрипту originatingpage.php и добавьте любой HTML тег:

header(‘Location: http://localhost/targetpage.php’);

Предположим, у вас есть такой код:

  <html>  <head>  <title> Это – ошибка редиректа </ TITLE>  </ HEAD>  <body>  <? PHP    header('Location: http://localhost/targetpage.php');    >  </ BODY>  </ HTML>  

2) Сохраните файл.

3) Запустите снова скрипт originating.php в браузере. Если вы не видите любые ошибки, вы заметите, что она по-прежнему чисто перенаправляет к targetpage.php

4) Теперь попробуйте изменить целевой URL, чтобы указать на реальный сайт, например:

  <html>  <head>  <title> пример ошибки редиректа</ TITLE>  </ HEAD>  <body>  <? PHP    header('Location: http://localhost/targetpage.php');    >  </ BODY>  </ HTML>  

5) Загрузите originatingpage.php на удаленный хостинг в корневой каталог сайта.

6) Выполните скрипт в браузере с помощью вызова originatingpage.php URL, например: http://www.php-developer.org/originatingpage.php

7) Вы заметите, что на этот раз, вы столкнетесь с ошибкой:

  Warning: Cannot modify header information - headers already sent by (output started at /home/phpdevel/public_html/originatingpage.php:6) in /home/phpdevel/public_html/originatingpage.php on line 7  

Что здесь происходит? Причиной проблемы является то, что у вас уже выведен код HTML перед заголовком функции.

www.runcms.org


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.