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