草庐IT

.htaccess - .htaccess 中重定向和重写的区别(与 SEO 和规范标签相关)

coder 2024-03-01 原文

好吧,如果我想删除 URL 的扩展名,但我的规范标签指向 带有 扩展名的 url,我不能使用 301 重定向,否则它会对 SEO 产生负面影响。

是否同样适用于 url 重写?或者我可以使用重写而不会对 SEO 产生负面影响吗?根据我的发现,重写似乎只会更改网址栏中的网址。

假设这是正确的,如果有人要复制 URL,他们会复制重写的 URL 还是复制原始 URL?

在您否决这个可能不是编程问题的问题之前,请理解我只是在这里问它,因为我假设程序员比网站管理员更了解 htaccess 的工作原理。

最佳答案

让我们稍微分解一下。

重定向

重定向 的主要目的是让某些东西(在本例中为搜索引擎)知道 URL 已移至新的 URL。因此,搜索引擎知道将“SEO 分数”从旧 URL 转移到新 URL。

例如,如果您从 http://www.example.com?type=product&id=250 创建了 301(永久)重定向 http://www.example.com/products/250 搜索引擎会将“SEO 分数”从原始 URL 转移到新 URL。

重写

重写 的主要目的是使 URL“更干净”,以便人们更容易输入。至于 SEO 目的,他们可以“帮助”SEO 分数(主要是因为它使 URL 更干净),但搜索引擎不会将 SEO 分数从旧 URL 转移到新 URL。从技术上讲,这是因为重写发生在服务器端(或在幕后),这意味着重写规则不会与外界(包括搜索引擎)共享。

例如,如果您为 http://www.example.com?type=product&id=250 创建重写规则 重写为 http://www.example.com/products/250 那么搜索引擎将不知道您试图将原始 URL 的“SEO 分数”转移到新的 URL。事实上,这唯一真正要做的就是让人们更容易输入 URL,并且您可能会因为使 URL 更清晰而获得 SEO 好处。

规范标签

如果您正在更新 URL 并希望将 SEO 分数“转移”到新 URL,则必须使用重定向。它不会对您的 SEO 分数产生负面影响。但是,使用重写将。

总结:当您更改网页的 URL 并希望将 SEO 分数从旧 URL“转移”到新 URL 时,使用重定向。使用重写 使 URL 更易于人类输入,并且可能会因为更清晰的 URL 而获得更高的 SEO 分数。

关于.htaccess - .htaccess 中重定向和重写的区别(与 SEO 和规范标签相关),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32139570/

有关.htaccess - .htaccess 中重定向和重写的区别(与 SEO 和规范标签相关)的更多相关文章

  1. ruby - 在院子里用@param 标签警告 - 2

    我试图使用yard记录一些Ruby代码,尽管我所做的正是所描述的here或here#@param[Integer]thenumberoftrials(>=0)#@param[Float]successprobabilityineachtrialdefinitialize(n,p)#initialize...end虽然我仍然得到这个奇怪的错误@paramtaghasunknownparametername:the@paramtaghasunknownparametername:success然后生成的html看起来很奇怪。我称yard为:$yarddoc-mmarkdown我做错了什么?

  2. ruby - 触发器 ruby​​ 中 3 点范围运算符和 2 点范围运算符的区别 - 2

    请帮助我理解范围运算符...和..之间的区别,作为Ruby中使用的“触发器”。这是PragmaticProgrammersguidetoRuby中的一个示例:a=(11..20).collect{|i|(i%4==0)..(i%3==0)?i:nil}返回:[nil,12,nil,nil,nil,16,17,18,nil,20]还有:a=(11..20).collect{|i|(i%4==0)...(i%3==0)?i:nil}返回:[nil,12,13,14,15,16,17,18,nil,20] 最佳答案 触发器(又名f/f)是

  3. ruby-on-rails - `a ||= b` 和 `a = b if a.nil 之间的区别? - 2

    我正在检查一个Rails项目。在ERubyHTML模板页面上,我看到了这样几行:我不明白为什么不这样写:在这种情况下,||=和ifnil?有什么区别? 最佳答案 在这种特殊情况下没有区别,但可能是出于习惯。每当我看到nil?被使用时,它几乎总是使用不当。在Ruby中,很少有东西在逻辑上是假的,只有文字false和nil是。这意味着像if(!x.nil?)这样的代码几乎总是更好地表示为if(x)除非期望x可能是文字false。我会将其切换为||=false,因为它具有相同的结果,但这在很大程度上取决于偏好。唯一的缺点是赋值会在每次运行

  4. ruby - 这两个 Ruby 类初始化定义有什么区别? - 2

    我正在阅读一本关于Ruby的书,作者在编写类初始化定义时使用的形式与他在本书前几节中使用的形式略有不同。它看起来像这样:classTicketattr_accessor:venue,:datedefinitialize(venue,date)self.venue=venueself.date=dateendend在本书的前几节中,它的定义如下:classTicketattr_accessor:venue,:datedefinitialize(venue,date)@venue=venue@date=dateendend在第一个示例中使用setter方法与在第二个示例中使用实例变量之间是

  5. ruby - 将 spawn() 的标准输出/标准错误重定向到 Ruby 中的字符串 - 2

    我想使用spawn(针对多个并发子进程)在Ruby中执行一个外部进程,并将标准输出或标准错误收集到一个字符串中,其方式类似于使用Python的子进程Popen.communicate()可以完成的操作。我尝试将:out/:err重定向到一个新的StringIO对象,但这会生成一个ArgumentError,并且临时重新定义$stdxxx会混淆子进程的输出。 最佳答案 如果你不喜欢popen,这是我的方法:r,w=IO.pipepid=Process.spawn(command,:out=>w,:err=>[:child,:out])

  6. css - 用 watir 检查标签类? - 2

    我有一个div,它根据表单是否正确提交而改变。我想知道是否可以检查类的特定元素?开始元素看起来像这样。如果输入不正确,添加错误类。 最佳答案 试试这个:browser.div(:id=>"myerrortest").class_name更多信息:http://watir.github.com/watir-webdriver/doc/Watir/HTMLElement.html#class_name-instance_method另一种选择是只查看具有您期望的类的div是否存在browser.div((:id=>"myerrortes

  7. spring.profiles.active和spring.profiles.include的使用及区别说明 - 2

    转自:spring.profiles.active和spring.profiles.include的使用及区别说明下文笔者讲述spring.profiles.active和spring.profiles.include的区别简介说明,如下所示我们都知道,在日常开发中,开发|测试|生产环境都拥有不同的配置信息如:jdbc地址、ip、端口等此时为了避免每次都修改全部信息,我们则可以采用以上的属性处理此类异常spring.profiles.active属性例:配置文件,可使用以下方式定义application-${profile}.properties开发环境配置文件:application-dev

  8. ruby - 这两段代码有什么区别? - 2

    打印1:defsum(i)i=i+[2]end$x=[1]sum($x)print$x打印12:defsum(i)i.push(2)end$x=[1]sum($x)print$x后者是修改全局变量$x。为什么它在第二个例子中被修改而不是在第一个例子中?类Array的任何方法(不仅是push)都会发生这种情况吗? 最佳答案 变量范围在这里无关紧要。在第一段代码中,您仅使用赋值运算符=为变量i赋值,而在第二段代码中,您正在修改$x(也称为i)使用破坏性方法push。赋值从不修改任何对象。它只是提供一个名称来引用一个对象。方法要么是破坏性

  9. ruby - Ruby 中 .next 和 .succ 的区别 - 2

    Ruby中的Fixnum方法.next和.succ有什么区别?看起来它的工作原理是一样的:1.next=>21.succ=>2如果有什么不同,为什么有两种方法做同样的事情? 最佳答案 它们是等价的。Fixnum#succ只是Fixnum#next的同义词。他们甚至在thereferencemanual中共享同一block. 关于ruby-Ruby中.next和.succ的区别,我们在StackOverflow上找到一个类似的问题: https://stacko

  10. ruby - 在参数为 `yield self` 的方法中使用 `&block` 和在没有参数 `yield self` 的方法中使用 `&block` 有什么区别吗? - 2

    我明白了defa(&block)block.call(self)end和defa()yieldselfend导致相同的结果,如果我假设有这样一个blocka{}。我的问题是-因为我偶然发现了一些这样的代码,它是否有任何区别或者是否有任何优势(如果我不使用变量/引用block):defa(&block)yieldselfend这是一个我不理解&block用法的具体案例:defrule(code,name,&block)@rules=[]if@rules.nil?@rules 最佳答案 我能想到的唯一优点就是自省(introspecti

随机推荐