我已经使 url SEO 友好,即
http://mydomain.com/topic/title-of-page
之前,上面页面的url是
http://mydomain.com/search?id=6567889
现在 Google 仍在搜索结果中显示第二个 URL。我的问题是,如果我在 robots.txt 中禁止使用 /search,Google 会完全停止抓取该页面还是会继续抓取 mydomain.com/topic/title -of-page 即新 URL?
非常感谢您的帮助。抱歉 URL 中的空格,因为 SO 不允许我发布它们
塞布
最佳答案
您会想立即解决这个问题。在 SEO 方面,网站上的重复内容会出现问题。
要从您的站点减少一半的搜索引擎流量,请将此添加到您的 robots.txt 文件中:
User-agent: *
Disallow: /search.php
这样,所有搜索引擎都不会挖掘旧链接。他们可能仍会为搜索结果缓存它。也就是说,您需要使用 301 重定向来处理他们提供的每个页面,这样您就不会受到惩罚。这将告诉他们更新缓存。
此外,您还需要添加一个 sitemap.xml 文件,其中包含服务器上按优先级顺序排列的所有正确 URL。
假设您将新路径存储在数据库中,您需要对 search.php 执行类似这样的操作。这样您就可以保留用于 SEO 的 URL。 301 is a Permanent Redirect.
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 文件,但这不是 future 的证明,列表越大,处理时间越长(更多服务器开销)。
RewriteEngine On
RewriteRule ^search\.php\?id=1 /page1_new_path/ [L,R=301]
RewriteRule ^search\.php\?id=2 /page2_new_path/ [L,R=301]
关于php - URL 重写和 robots.txt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16073142/
从给定URL下载文件并立即将其上传到AmazonS3的更直接的方法是什么(+将有关文件的一些信息保存到数据库中,例如名称、大小等)?现在,我既不使用Paperclip,也不使用Carrierwave。谢谢 最佳答案 简单明了:require'open-uri'require's3'amazon=S3::Service.new(access_key_id:'KEY',secret_access_key:'KEY')bucket=amazon.buckets.find('image_storage')url='http://www.ex
我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A
我正在使用Rails构建一个简单的聊天应用程序。当用户输入url时,我希望将其输出为html链接(即“url”)。我想知道在Ruby中是否有任何库或众所周知的方法可以做到这一点。如果没有,我有一些不错的正则表达式示例代码可以使用... 最佳答案 查看auto_linkRails提供的辅助方法。这会将所有URL和电子邮件地址变成可点击的链接(htmlanchor标记)。这是文档中的代码示例。auto_link("Gotohttp://www.rubyonrails.organdsayhellotodavid@loudthinking.
我正在使用RubyonRails3.0.9,我想生成一个传递一些自定义参数的link_toURL。也就是说,有一个articles_path(www.my_web_site_name.com/articles)我想生成如下内容:link_to'Samplelinktitle',...#HereIshouldimplementthecode#=>'http://www.my_web_site_name.com/articles?param1=value1¶m2=value2&...我如何编写link_to语句“alàRubyonRailsWay”以实现该目的?如果我想通过传递一些
我正在编写一个简单的静态Rack应用程序。查看下面的config.ru代码:useRack::Static,:urls=>["/elements","/img","/pages","/users","/css","/js"],:root=>"archive"map'/'dorunProc.new{|env|[200,{'Content-Type'=>'text/html','Cache-Control'=>'public,max-age=6400'},File.open('archive/splash.html',File::RDONLY)]}endmap'/pages/search.
如何使此根路径转到:“/dashboard”而不仅仅是http://example.com?root:to=>'dashboard#index',:constraints=>lambda{|req|!req.session[:user_id].blank?} 最佳答案 您可以通过以下方式实现:root:to=>redirect('/dashboard')match'/dashboard',:to=>"dashboard#index",:constraints=>lambda{|req|!req.session[:user_id].b
我正在使用Dragonfly在Rails3.1应用程序上处理图像。我正在努力通过url将图像分配给模型。我有一个很好的表格:{:multipart=>true}do|f|%>RemovePicture?Dragonfly的文档指出:Dragonfly提供了一个直接从url分配的访问器:@album.cover_image_url='http://some.url/file.jpg'但是当我在控制台中尝试时:=>#ruby-1.9.2-p290>picture.image_url="http://i.imgur.com/QQiMz.jpg"=>"http://i.imgur.com/QQ
除了协议(protocol)定义中的斜杠('http[s]://'、'ftp://'等)之外,我想替换URL中的所有多个斜杠。我该怎么做?此代码无一异常(exception)地替换:url.gsub(/\/\/+/,'/') 最佳答案 您只需排除任何以:开头的匹配项url.gsub(/([^:])\/\//,'\1/') 关于ruby正则表达式:replacedoubleslashesinURL,我们在StackOverflow上找到一个类似的问题: http
给定一个文本,我想删除url部分并保留其他文本。例子:'blablabla...blablabla...http://bit.ly/someuriblablabla...'成为'blablabla...blablabla...blablabla...'是否有任何ruby内置方法可以有效地执行此操作? 最佳答案 尝试使用正则表达式:(?:f|ht)tps?:\/[^\s]+ 关于ruby-使用ruby从文本中删除url,我们在StackOverflow上找到一个类似的问题:
目前我正在使用这个正则表达式从YoutubeURL中提取视频ID:url.match(/v=([^&]*)/)[1]我怎样才能改变它,以便它也可以从这个没有v参数的YoutubeURL获取视频ID:http://www.youtube.com/user/SHAYTARDS#p/u/9/Xc81AajGUMU感谢阅读。编辑:我正在使用ruby1.8.7 最佳答案 对于Ruby1.8.7,这就可以了。url_1='http://www.youtube.com/watch?v=8WVTOUh53QY&feature=feedf'url