1

我在我的一个项目中使用 PHP 重定向。我这样做:

header( 'Location: http://domain.net/?cig=warn&onum=' . $onum . '&cnum=' . $cnum . '&c=' . $c . '#Form' );

所以你看,这是PHPheader()函数的正常使用,其中一些变量包含在URL中。
它正在工作,但使用 Firebug 测试页面时,我在控制台中收到此错误:

"NetworkError: 404 Not Found - http://domain.net/?cig=warn&onum=12&cnum=73&c=ui#Form"

我这样做的方式实际上是否有问题,或者这只是 Firebug 因为所有参数和锚点而变得挑剔?

4

1 回答 1

0

由于此页面位于 WordPress 环境中,因此您必须在发送标头之前手动设置 200 状态代码(使用 WordPress status_header()函数):

<?php
// This must appear before any output is sent!
status_header(200);
?>

显然,您必须引入 WordPress 功能才能做到这一点。问题是 WordPress 在您的页面有机会处理它之前拦截了请求。它无法找到“页面”并设置 404 响应代码,最终将其发送回。

过去,当我不得不引入 WordPress 功能时,我通过在页面上包含以下两行来做到这一点:

define('WP_USE_THEMES', false);
require_once("/path/to/my/site/wp-blog-header.php");

现在,也就是说,我过去使用的页面与我的 WordPress 安装中的页面具有相同的外观和感觉。可能有更好的方法来单独引入函数;您必须查阅 WordPress 文档才能找到(我不知道是否有)。对于WordPress StackExchange 站点来说,如何正确地做到这一点可能是一个很好的问题。

于 2013-02-21T20:21:05.207 回答