我已经看过这个问题了一千次,但我没看到的是对以下情况的回答。也许一个已经存在?
我确定的事情:
<?php
和?>
周围有 NO 空格。是一个问题:
有问题的代码被“包含在”布局页面中“导致问题,也许有人可以告诉我如何解决这个问题?
所以继承代码,我没有写这个,我只是维护它。
$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");
答案 0 :(得分:1)
问题是在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'); ?>
...