php 301重定向实际执行302重定向

I have been googling for this but no one appears to have the answer.

This post describes the problem well:

http://www.mail-archive.com/php-general@lists.php.net/msg198576.html

Server is Windows 2008 FastCGI PHP 5

It appears that the only answer to this one at the moment is to not use FastCGI on IIS7 when using PHP (because of a bug in FastCGI) - which is rubbish because it's very quick. Using isapi allows the 301 redirects to work as they should, but it's not as fast.

I don't have PHP here to test this, but wouldn't this produce a 301?

header('Location: http://www.example.com/', true, 301);

It should be as given by R. Bemrose; that's the usual example code. I guess there is something not-quite-right about your PHP execution environment.

Another method you can try is the CGI standard way of passing back a status line:

header('Status: 301 Moved permanently');
header('Location: http://www.example.com/');