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

#php #http-status-code-301

#php #http-status-code-301

Вопрос:

Я пишу перенаправление 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 страница перенаправляется, как и должно быть. Если я использую динамическую переменную, это выдает ошибку.

Что я делаю не так?

Спасибо

Комментарии:

1. Я включил URL, который перенаправляет на страницу, которая не существует: 24hour-casino-games.com/index1.asp Я не вижу сообщения об ошибке

2. ошибка говорит о том, что вы пытаетесь открыть файл, который не существует!

Ответ №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

Комментарии:

1. Интересно, я изменил код на <?php if ($row_rs_page[‘g_page_url’]!= $pagename1) { Заголовок ( «HTTP / 1.1 301 перемещен постоянно»); Заголовок(«Location: «.$mainurl.»»); }?> и теперь, кажется, работает на 100% спасибо за ввод!

2. На самом деле, не выводите НИЧЕГО перед ЛЮБЫМ заголовком. Заголовки отправляются перед содержимым страницы, когда вы выводите что-либо (напрямую), заголовки не будут работать корректно. В этом случае используйте буферизацию вывода.