php 301 redirects actually doing a 302 redirect

2019-03-05 14:39发布

问题:

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

回答1:

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.



回答2:

microsoft released a fix for this: http://www.microsoft.com/downloads/en/results.aspx?freetext=980363&displaylang=en&stype=s_basic



回答3:

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

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


回答4:

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/');