代码之家  ›  专栏  ›  技术社区  ›  dzhi

301重定向问题?

  •  0
  • dzhi  · 技术社区  · 14 年前

    这是将页面重定向到另一个域页面的qood示例:

    RewriteCond %{HTTP_HOST} ^dejan.com.au$ [OR]
    RewriteCond %{HTTP_HOST} ^www.dejan.com.au$
    RewriteRule ^seo_news_blog_spam\.html$ "http\:\/\/dejanseo\.com\.au\/blog\-spam\/" [R=301,L]
    

    或是好的老作品:

    301 redirect seo_news_blog_spam.html http://dejanseo.com.au/blog/spam/
    

    有什么区别?

    2 回复  |  直到 14 年前
        1
  •  0
  •   Tim Stone    14 年前

    想必,这些规则在功能上是等价的(好吧,假设 http://dejanseo.com.au/blog/spam/ 应该是的 http://dejanseo.com.au/blog-spam/ 就像第一个重定向到的一样,唯一指向该位置的主机是 dejanseo.com.au 带或不带 www

    第一个示例使用 mod_rewrite mod_alias . 我认为,对于这种特殊情况,首选的选项是第二种,这不仅仅是因为它更简单一点(在创建用户使用的正则表达式时还需要额外的开销) 修改

    Redirect 301 seo_news_blog_spam.html http://dejanseo.com.au/blog-spam/
    

    但是,我怀疑您拥有第一个的原因是它是使用CPanel创建的(基于之前在另一个用户的问题中出现的替换中不必要的转义,其中指出CPanel是罪魁祸首)。他们已经走了 修改 选项,因为它提供了 Redirect

    您将注意到,在第一个示例中,有一个关于是否基于主机名重定向的条件,由 RewriteCond . 这允许您执行基于请求路径以外的更强大的重定向。请注意 修改 还允许对用户不可见的内部重定向,这 不是为了,但这不是它在这里使用的容量。

    作为最后的旁白,在你的 重写条件 从技术上讲,声明应该漏掉点,因为 . direct string comparisons

        2
  •  0
  •   dzhi    14 年前

    不可信的是,问题是synthax不正确,因此:

    redirect 301 seo_news_blog_spam.html http://dejanseo.com.au/blog/spam/
    

    应该是这样的:

    Redirect 301 seo_news_blog_spam.html http://dejanseo.com.au/blog/spam/
    

    感谢所有参与的人,问题解决了。