有超过3000的URL我必须301 redirect
。我无意中在很多URL中重复使用了城市/州,这使得它们重复且时间过长。我可以以编程方式生成超过3000个if statements
的URL,它需要为301 redirected
。但是,这将会是每一页顶部的数千行代码。以下是使用此方法的3000多个网址中的3个示例redirects
。PHP 301重定向 - 3000动态URL的
if($_SERVER['REQUEST_URI'] == 'central-alabama-community-college-alexander-city-alabama') {
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.website.com/colleges/central-alabama-community-college-alexander-city");
exit;
}
if($_SERVER['REQUEST_URI'] == 'athens-state-university-athens-alabama') {
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.website.com/colleges/athens-state-university-alabama");
exit;
}
if($_SERVER['REQUEST_URI'] == 'auburn-university-auburn-alabama') {
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.website.com/colleges/auburn-university-alabama");
exit;
}
这种方法是有效的,但我担心这是不好的做法。另一种方法是使用关联数组。这是这样的:
$redirects = array('central-alabama-community-college-alexander-city-alabama' => 'central-alabama-community-college-alexander-city','athens-state-university-athens-alabama' => 'athens-state-university-alabama','auburn-university-auburn-alabama' => 'auburn-university-alabama');
if(array_key_exists($_SERVER["REQUEST_URI"], $redirects)) {
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.website.com/colleges/$redirects[1]");
exit;
}
我可以有一点点错误,但你可以看到它应该做什么。什么是最好的方法来解决这个问题?我不认为我可以有效地使用.htaccess
,因为每个重定向有多独特。每个网址都没有一致的变量。有什么想法吗?
感谢DAJ。你知道,如果这从SEO的角度来看可接受的做法?我担心这样做超过3000个URL是由谷歌/ SERPS皱起了眉头。 – Graham 2013-02-25 07:21:49
这是完全可以接受的,只要这些重定向是永久的(如301所示),并且您将用户重定向到规范地址。 – Dai 2013-02-25 07:22:59
要说清楚,你的意思是在每页的
中都有这样的东西吗? *** <链路的rel = “规范” HREF = “http://www.website.com/colleges/central-alabama-community-college-alexander-city”/> – Graham 2013-02-25 07:25:33