你会想马上解决这个问题。在 SEO 方面,网站上的重复内容将会出现问题。
要从您的网站减少一半的搜索引擎流量,请将其添加到您的 robots.txt 文件中:
User-agent: *
Disallow: /search.php
这样,任何搜索引擎都不会挖掘旧链接。他们可能仍会为他们的搜索结果缓存它。话虽如此,您需要使用 301 重定向来处理他们提供的每个页面,这样您就不会受到惩罚。这将告诉他们更新他们的缓存。
此外,您需要添加一个 sitemap.xml 文件,其中包含服务器上所有正确 URL 的优先级顺序。
假设您将新路径存储在数据库中,您需要对search.php
. 这样您就可以保留您的 SEO 网址。301 是永久重定向。
if(preg_match('!^/search!',$_SERVER['REQUEST_URI'])){
$tempID = $_GET['id'];
$tempID = mysqli_real_escape_string($tempID);
$query = "select count(*) from table where id=$tempID";
$count = mysqli_result(mysqli_query($db_link,$query),0);
if($count==1){
$query2 = "select correctPath from table where id=$tempID";
$correctPath = mysqli_result(mysqli_query($db_link,$query2),0);
header( "HTTP/1.1 301 Moved Permanently" );
header( "Location: $correctPath" );
exit();
} else {
//non-existent ID
header( "HTTP/1.1 301 Moved Permanently" );
header( "Location: /" );
exit();
}
}
否则,您可以将第二个查询替换为您用于构建路径的函数。
您可以像这样为每个条目向 .htaccess 文件中添加一些内容,但这不是未来的证明,并且列表越大,处理的时间就越长(更多的服务器开销)。
RewriteEngine On
RewriteRule ^search\.php\?id=1 /page1_new_path/ [L,R=301]
RewriteRule ^search\.php\?id=2 /page2_new_path/ [L,R=301]