Это для проекта.Мне нужно перенаправить определенные входящие URL-запросы на файлы, размещенные на том же веб-сервере.Я не могу использовать .htaccess и не могу положиться на какие-либо плагины.
Мне удалось сделать это с помощью плагина, но я с трудом извлекаю необходимый код для написания своего собственного плагина, который делает то, что мне нужно делать в жестком коде.
Я нашел некоторый код в документации Pantheon:
$blog_id = get_current_blog_id();
// You can easily put a list of many 301 url redirects in this format
// Trailing slashes matters here so /old-url1 is different from /old-url1/
$redirect_targets = array(
'/test/test.xml' => '/files/' . $blog_id . '/test.xml',
'/regex/wildcard.xml(.*)' => '/files/' . $blog_id . '/regex.xml',
);
if ( (isset($redirect_targets[ $_SERVER['REQUEST_URI'] ] ) ) && (php_sapi_name() != "cli") ) {
echo 'https://'. $_SERVER['HTTP_HOST'] . $redirect_targets[ $_SERVER['REQUEST_URI'] ];
header('HTTP/1.0 301 Moved Permanently');
header('Location: https://'. $_SERVER['HTTP_HOST'] . $redirect_targets[ $_SERVER['REQUEST_URI'] ]);
if (extension_loaded('newrelic')) {
newrelic_name_transaction("redirect");
}
exit();
}
https://example.com/test/test.xml успешно
перенаправляет на
/ files / 5 / text.xml
Однако некоторые входящие запросы содержат строку запроса, например,
https://example.com/regex/wildcard.xml?somequerystring
очевидно, перенаправление с
https://example.com/regex/wildcard.xml
на
/ files / 5 / regex.xml
работает нормально.
Однако, как только появляется строка запроса, перенаправление не работает.Учитывая, что мне нужно сделать это с помощью PHP, как я могу добиться перенаправления с подстановочными знаками из / regex / * или /regex/wildcard.xml* в /files/5/regex.xml?
Любая помощь будет очень полезна.
Спасибо, Даниэль