无法使用 PHP 正确重定向
Cannot redirect correctly with PHP
我想重定向网站中的博客。
例如这个URLhttps://example.com/blog/june-2021/name-of-blog-post should redirect to https://example2.com/blog/june-2021/name-of-blog-post
有数百篇博客文章,所以我无法使用数组将它们一一重定向。
我正在使用 Pantheon 作为主机。我将脚本添加到 settings.php.
目前从 example.com 到 example2.com 的所有内容都无法正常工作。
这是我的脚本:
$url = $_SERVER['REQUEST_URI'];
$uri_path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$uri_segments = explode('/', $uri_path);
$blog = $uri_segments[0];
$post_date = $uri_segments[1];
$post_name = $uri_segments[2];
if ((stripos($url, "/blog/") === 0) && (php_sapi_name() != "cli")) {
header('HTTP/1.0 301 Moved Permanently'); header("Location: https://example2.com".$blog.$post_date.$post_name);
if (extension_loaded('newrelic')) {
newrelic_name_transaction("redirect");
}
exit(); }
提前致谢!
您可以通过检查是否在 $_SERVER['REQUEST_URI']
中的任何地方找到 !== false
来检查 /blog/
:
if ((stripos($url, "/blog/") !== false) && (php_sapi_name() != "cli")) {
或者查看是否在$_SERVER['REQUEST_URI']
的第0
个位置找到:
if ((stripos($url, "/blog/") === 0) && (php_sapi_name() != "cli")) {
备注:
stripos
只需要三个参数,你只需要前两个。
Location
header 应该由一个 单一绝对 URI 组成,就像 https://example2.com/blog/june-2021/name-of-blog-post
,所以你可以看看另一个 $_SERVER
变量构造一个。
我想重定向网站中的博客。
例如这个URLhttps://example.com/blog/june-2021/name-of-blog-post should redirect to https://example2.com/blog/june-2021/name-of-blog-post
有数百篇博客文章,所以我无法使用数组将它们一一重定向。
我正在使用 Pantheon 作为主机。我将脚本添加到 settings.php.
目前从 example.com 到 example2.com 的所有内容都无法正常工作。
这是我的脚本:
$url = $_SERVER['REQUEST_URI'];
$uri_path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$uri_segments = explode('/', $uri_path);
$blog = $uri_segments[0];
$post_date = $uri_segments[1];
$post_name = $uri_segments[2];
if ((stripos($url, "/blog/") === 0) && (php_sapi_name() != "cli")) {
header('HTTP/1.0 301 Moved Permanently'); header("Location: https://example2.com".$blog.$post_date.$post_name);
if (extension_loaded('newrelic')) {
newrelic_name_transaction("redirect");
}
exit(); }
提前致谢!
您可以通过检查是否在 $_SERVER['REQUEST_URI']
中的任何地方找到 !== false
来检查 /blog/
:
if ((stripos($url, "/blog/") !== false) && (php_sapi_name() != "cli")) {
或者查看是否在$_SERVER['REQUEST_URI']
的第0
个位置找到:
if ((stripos($url, "/blog/") === 0) && (php_sapi_name() != "cli")) {
备注:
stripos
只需要三个参数,你只需要前两个。Location
header 应该由一个 单一绝对 URI 组成,就像https://example2.com/blog/june-2021/name-of-blog-post
,所以你可以看看另一个$_SERVER
变量构造一个。