301 Ошибка перенаправления PHP - из переменной

Я пишу редирект 301, но получаю ошибку, когда передаю URL через переменную

Я использую этот скрипт для получения URL-адреса текущей страницы и доменного имени.

<?php
$mainurl = "http://" .$_SERVER["SERVER_NAME"];
$pagename1 = "".$_SERVER["QUERY_STRING"];
?>

Если страница не перенаправляется, я использую это для перенаправления страницы.

<?php if ($row_rs_page['g_page_url'] != $pagename1) 
       $pagenameexists = "<p>page exists</p>";
?>
<?php Header( "HTTP/1.1 301 Moved Permanently" );
      Header("Location: ".$mainurl."");
?>

Вот где я подозреваю, что проблема возникает: Header("Location: ".$mainurl.""); Если я ввожу http://www.example.com в место $mainurl страница перенаправляется как следует. Если я использую динамическую переменную, она вызывает ошибку.

Что я делаю неправильно?

Спасибо


person Gerald Ferreira    schedule 22.04.2011    source источник
comment
Я включил URL-адрес, который перенаправляет на несуществующую страницу: 24hour-casino-games.com /index1.asp Я не вижу сообщения об ошибке   -  person Gerald Ferreira    schedule 22.04.2011
comment
ошибка говорит, что вы пытаетесь открыть несуществующий файл!   -  person Sourav    schedule 22.04.2011


Ответы (1)


<?php
$mainurl = "http://" .$_SERVER["SERVER_NAME"];
$pagename1 = "".$_SERVER["QUERY_STRING"];

if ($row_rs_page['g_page_url'] != $pagename1) 
   $pagenameexists = "<p>page exists</p>";
Header( "HTTP/1.1 301 Moved Permanently" );
  Header("Location: ".$mainurl."");
?>

Шакти права!
Ничего не выводите перед заголовком LOCATION.

person Sourav    schedule 22.04.2011
comment
Интересно, я изменил код на ‹?php if ($row_rs_page['g_page_url'] != $pagename1) { Header(HTTP/1.1 301 Moved Permanently); Заголовок(Расположение: .$mainurl.); }?› и теперь это работает на 100%, спасибо за вклад! - person Gerald Ferreira; 22.04.2011
comment
На самом деле, НИЧЕГО не выводите перед ЛЮБЫМ заголовком. Заголовки отправляются перед содержимым страницы, когда вы выводите что-либо (напрямую), заголовки не будут работать правильно. В этом случае используйте буферизацию вывода. - person Christian; 22.04.2011