Возможно, вы захотите сначала повторить Attempting to Redirect
вместо заголовка, чтобы вы могли увидеть, пытается ли он кого-то перенаправить. Таким образом, вы можете проверить, работает ли первая половина функции.
Вот сообщение в блоге о чем-то очень похожем на то, что вы делаете, в котором вместо stg_match используется strpos, что, вероятно, более просто.
Если это не «перенаправление», AKA, функция header
, похоже, не работает, у вас есть другая проблема.
Если функция header
не работает, попробуйте добавить Firefox в список браузеров для перенаправления, а затем используйте Firebug для проверки заголовков, отправляемых в браузер.
Возможно, проблема в том, как взаимодействуют PHP и Apache.
Есть вероятность, что у вас error_reporting выключен. Если вы это сделаете, PHP может попытаться вывести ошибку, которая говорит, что перед вашей командой заголовка есть пробелы.
Перед командой header()
, попробуйте установить error_reporting(E_ALL);
и проверьте, не выдает ли она сообщения об ошибках, чтобы воспользоваться
Headers could not be sent. Headers have already been sent on file.php line 1.
В основном, если вы отправляете какой-либо HTML, пробел или какой-либо другой вывод перед командой header()
, PHP выдаст ошибку, так как заголовки должны быть отправлены до содержимого страницы. После отправки первого пробела отправляются заголовки, и вы больше не можете отправлять
Вы можете проверить, отправляются ли заголовки, используя header_sent()
if(headers_sent()){ echo "Headers Sent"; }