Я искал это для поиска, но никто, похоже, не ответил.
Этот пост хорошо описывает проблему:
http://www.mail-archive.com/php-general@lists.php.net/msg198576.html
Сервер – это Windows 2008 FastCGI PHP 5
Похоже, что единственный ответ на этот вопрос в настоящий момент – не использовать FastCGI на IIS7 при использовании PHP (из-за ошибки в FastCGI) – это мусор, потому что это очень быстро. Использование isapi позволяет 301 переадресации работать так, как должно, но это не так быстро.
Microsoft выпустила исправление для этого: http://www.microsoft.com/downloads/en/results.aspx?freetext=980363&displaylang=en&stype=s_basic
У меня нет PHP здесь, чтобы проверить это, но разве это не приведет к 301?
header('Location: http://www.example.com/', true, 301);
Это должно быть дано Р. Бемроузом; это обычный пример кода. Я думаю, что в вашей среде выполнения PHP есть что-то не совсем правильное.
Другой метод, который вы можете попробовать, – это стандартный способ передачи строки состояния CGI:
header('Status: 301 Moved permanently'); header('Location: http://www.example.com/');