У нас есть старый URL-адрес, который мы хотим перенаправить через PHP в новое место. (Пожалуйста, никаких лекций о том, является ли это лучшим способом сделать это; это то, что было решено.)
Если пользователь переходит на http://oldurl.com, мы хотим перенаправить на http://newurl.com. Если они перейдут на http://oldurl.com/locations/illinois/12345 (или любой другой основанный на местоположении URL этого формата), мы хотим перенаправить на http://newurl.com/locations/illinois/ 12345а>.
<?php
$_SERVER['REQUEST_URI_PATH'] = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$segments = explode('/', $_SERVER['REQUEST_URI_PATH']);
if(is_array($segments) && in_array("locations", $segments)) {
header('Location: http://newurl.com/locations/' . $segments[2] . '/' . $segments[3]);
}
else {
header('Location: http://newurl.com');
}
Условие if
работает — оно перенаправляет на динамически созданный URL. Но когда пользователь переходит на http://oldurl.com, вместо выполнения условия else и перенаправления на http://newurl.com, остается исходный URL и отображается пустая страница.
Есть идеи, почему?