Я видел этот вопрос тысячу раз, но я не видел ответа на следующую ситуацию. Может быть, один уже существует?
Что-то, в чем я убедился:
<?php
а также ?>
,Там является одна проблема:
Код, о котором идет речь, «включается» в «страницу макета», которая вызывает проблему, может, кто-нибудь подскажет, как обойти это?
Так вот код, я не писал это, я просто поддерживаю его.
$pagetitle = $_SERVER['REQUEST_URI'];
switch ($pagetitle) {
...
case "/locations.php?l=8" :
echo '<title>Mississauga West, Canada Winemaking - Vinbon</title>';
break;
...
}
В этом случае я попытался сделать следующее, зная, что это, вероятно, не сработает из-за оператора echo.
case "/locations.php?l=8" :
ob_start();
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.New-Website.com");
die();
ob_end_flush();
break;
Теперь я знаю, что вы, ребята, заявили в некоторых ответах, чтобы не указывать эхо выше, поскольку это может вызвать проблемы. Я предполагаю ob_start()
бы прояснить это?
Как видите, это должен быть редирект 301.
Теперь этот кусок кода находится в файле с именем: inc_meta.php
что тогда включены (не обязательно) в файле с именем layer01.php
,
При запуске он вызывает следующие «предупреждения»:
Warning: Cannot modify header information - headers already sent by (output started at /home/content/46/11552446/html/layout/layer01.php:5) in /home/content/46/11552446/html/layout/layer01.php on line 10
Warning: Cannot modify header information - headers already sent by (output started at /home/content/46/11552446/html/layout/layer01.php:5) in /home/content/46/11552446/html/layout/layer01.php on line 11
Теперь линия 5 — это то, где мы делаем <? include inc_meta.php ?>
и layer01.php — это не более чем HTML-файл.
Линия 10 — это пробел над <body>
тег и строка 11 является <body>
тег.
Я не могу использовать JavaScript, потому что это должно быть перенаправление 301 для этого места. У кого-нибудь есть какие-либо идеи?
Итак, я попытался удалить выражение echo, так как решил, что вы, ребята, заявите, что это проблема
Теперь я получаю:
Warning: Cannot modify header information - headers already sent by (output started at /home/content/46/11552446/html/layout/layer01.php:5) in /home/content/46/11552446/html/layout/inc_meta.php on line 51
Warning: Cannot modify header information - headers already sent by (output started at /home/content/46/11552446/html/layout/layer01.php:5) in /home/content/46/11552446/html/layout/inc_meta.php on line 52
строки 51 и 52 относятся к:
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.New-Website.com");
Проблема заключалась в том, что в файле php / html я не знал, что вам нужно было включить этот файл выше <DOCTYPE ... >
а также <html>
теги. Как только это было включено там, проблема исправила себя.
Итак, в моем случае:
<? include('inc_meta.php'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
....
Вместо того, что было:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<? include('inc_meta.php'); ?>
...
Других решений пока нет …