我在浏览 amazon.com 时注意到有这样的产品:“真的真的真的长书名”,它们的 URL 如下:“amazon. com/超长书名/ref?id=1&anotherId=2,"
对于像“Success”这样的短标题,他们会添加其他词,比如作者姓名:“amazon.com/Success-John-Smith/ref?id =1&另一个ID=2。”如果我删除这些词,例如:“amazon.com/ref?id=1&anotherId=2”,URL 仍然解析。
拥有多个解析到同一页面的 URL 是否会损害 SEO?
这些词是如何添加到 URL 中的?它是以编程方式完成的,还是他们让某人手工挑选单词并将它们存储在每个产品的数据库中?
我一直在努力扩展我对 SEO 的了解,所以我真的很想尽可能彻底地了解这是如何完成的。我非常感谢任何资源的推荐,以及基于个人经验的建议,这样如果我实现这样的 URL,我就可以正确地做到这一点。我知道我可以谷歌这些东西,但似乎总是有 1,000 种方法可以做某事,我只想听听一些个人建议。
为了它的值(value),我使用了 asp.net 4.0 (c#) 和 IIS7 URL 重写工具包。
非常感谢!
最佳答案
IIS7 URL 重写工具包是适合您的情况的最佳工具。以下是我对您问题的回答。
Does it hurt SEO to have multiple URLs that resolve to the same page?
它不会,只要您向搜索引擎显示哪个 URL 是主要 URL。您可以通过在主链接页面中添加 rel="canonical" 来做到这一点。最好的例子是 StackOverflow,它在 SEO 方面做得很好。现在,如果您使用 http://stackoverflow.com/questions/5392137/,您将被指向此页面,如果您使用 http://stackoverflow.com/questions/5392137/url-rewrite-adding-keywords 你也会在这个页面上。显然,第二个 ULR 有更多关键字,这对 SEO 非常有用,而且对用户更友好,因为用户知道 URL 的全部内容。
How are these words even added to the URL? Is it done programmatically, or do they have someone hand-pick words and store them in a database for each product?
如果您是开发人员,则不再是您的责任。 SEO 是 20% 的技术,80% 的营销(这是我的粗略计算,你知道这一点。:-))。那些营销人员应该在您授予他们编写或重写 ULR 的权限后处理该问题。他们可能会找到一些关键字,并根据他们的策略将其中一些添加到 URL 中。 Elad Lachmi 对这个问题给出了很好的回答。 StackOverflow 使用问题标题作为 URL,这是合理的。雇用大量 SEO 人员根据不同的问题查找关键字,然后手动添加到 URL 不是 SO 的好选择。但对于商业网站来说,雇人手动做是值得的。答案取决于您的网站类型。
希望对你有帮助
关于asp.net - URL 重写 : Adding keywords,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5392137/
作为我的Rails应用程序的一部分,我编写了一个小导入程序,它从我们的LDAP系统中吸取数据并将其塞入一个用户表中。不幸的是,与LDAP相关的代码在遍历我们的32K用户时泄漏了大量内存,我一直无法弄清楚如何解决这个问题。这个问题似乎在某种程度上与LDAP库有关,因为当我删除对LDAP内容的调用时,内存使用情况会很好地稳定下来。此外,不断增加的对象是Net::BER::BerIdentifiedString和Net::BER::BerIdentifiedArray,它们都是LDAP库的一部分。当我运行导入时,内存使用量最终达到超过1GB的峰值。如果问题存在,我需要找到一些方法来更正我的代
是的,我知道最好使用webmock,但我想知道如何在RSpec中模拟此方法:defmethod_to_testurl=URI.parseurireq=Net::HTTP::Post.newurl.pathres=Net::HTTP.start(url.host,url.port)do|http|http.requestreq,foo:1endresend这是RSpec:let(:uri){'http://example.com'}specify'HTTPcall'dohttp=mock:httpNet::HTTP.stub!(:start).and_yieldhttphttp.shou
从给定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.
我目前正在使用以下方法获取页面的源代码:Net::HTTP.get(URI.parse(page.url))我还想获取HTTP状态,而无需发出第二个请求。有没有办法用另一种方法做到这一点?我一直在查看文档,但似乎找不到我要找的东西。 最佳答案 在我看来,除非您需要一些真正的低级访问或控制,否则最好使用Ruby的内置Open::URI模块:require'open-uri'io=open('http://www.example.org/')#=>#body=io.read[0,50]#=>"["200","OK"]io.base_ur
我正在使用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.
1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里
如何使此根路径转到:“/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