【问题标题】:301 redirect using htaccess for blog pages and all other pages使用 htaccess 对博客页面和所有其他页面进行 301 重定向
【发布时间】:2016-08-27 20:03:13
【问题描述】:

我正在尝试将旧网站重定向到新网站。我将旧网站视为两部分。博客文章和其他一切。我希望将博客文章重定向到他们在网站上的新位置,同时保持相同的 URL(或多或少)。我希望其他所有内容都重定向到新网站的主页。

要求:

  1. 所有博客文章都应重定向到相同的 URL(不带 /blog 部分),但位于新域中
  2. 所有非博客页面都应重定向到一个新页面

例子:

  • oldsite.com/ --> www.newsite.com

  • www.oldsite.com/register --> www.newsite.com

  • www.oldsite.com/pictures/cats --> www.newsite.com

  • www.oldsite.com/blog --> blog.newsite.com

  • www.oldsite.com/blog/cool-cats --> blog.newsite.com/cool-cats

【问题讨论】:

    标签: wordpress apache .htaccess redirect


    【解决方案1】:

    我假设不同的物理服务器?

    在旧网站上的 .htaccess 文件顶部,尝试以下操作:

    RewriteEngine On
    RewriteRule ^(blog)(/.*)? http://$1.newsite.com$2 [R=302,L]
    RewriteRule .* http://www.newsite.com/ [R=302,L]
    

    这首先重定向“博客”网址,然后重定向其他所有内容。顺序很重要。

    当您确定它工作正常时,将302(临时)重定向更改为301(永久)。 (浏览器不会缓存 302 重定向 - 以防出错。)

    但是,如果您能提供帮助,我建议不要将多个页面重定向到新网站上的单个主页。这对用户来说通常是一种糟糕的体验,Google 很可能会将其视为软 404 并忽略它。

    【讨论】:

    • 是的。新旧站点位于两个不同的服务器上。您是否建议将所有“其他”页面链接到新站点上的相应位置?如果是这样,需要多久?另外,由于顺序很重要,我会在您建议的规则之上执行Redirect 302 /contact http://www.newsite/contact-us 之类的操作吗?
    • 是的,您应该链接到新站点上的相应页面...尽可能长的时间(理想情况下是永远,取决于旧页面的链接程度)。如果您正在执行特定的重定向,那么是的,这些将需要首先出现。但是,您不能混合使用 mod_rewrite (RewriteRule) 和 mod_alias (Redirect) 重定向 - 不同的模块在不同的时间执行,因此您可能会遇到意外的冲突。 RewriteRule ^contact$ http://www.newsite/contact-us [R=301,L].
    • 感谢您的洞察力和帮助!一切就绪并正常工作:)
    【解决方案2】:

    把下面的代码@oldsite,主目录,.htaccess文件:

    RewriteEngine on
    
    RewriteRule !^blog ($|/) http://www.newsite.com%{REQUEST_URI} [L,R=301]
    
    # above line will redirect entire site to new site and exclude blog directory.
    

    然后,把下面的代码放到@oldsite.com/blog/目录下的.htaccess文件中:

    RewriteEngine On
    RewriteRule ^(.*)$ http://www.blog.newsite.com/$1  [L,R=301]
    
    # above line will redirect all requested url for oldsite.com/blog/ directory
    # to blog.newsite/ with same extensions and if you remove $1 it will
    # be redirected to index @ blog.newsite.com
    

    如果有一些blog/SubDirectories/,检查其中是否没有.htaccess,或者它们存在但什么都没有,所以没有问题但是如果它们有一些规则,请确保它适应不影响/blog /目录.htaccess规则

    【讨论】:

    • 我可能对此有点模糊,但旧网站是一个 wordpress 网站。我不知道包含 .htaccess 文件的 blog 目录
    • 好的,你只能访问主目录中的 .htaccess 吗?
    猜你喜欢
    • 2014-10-10
    • 2020-03-11
    • 2017-09-15
    • 1970-01-01
    • 2012-03-20
    • 2017-06-30
    • 2012-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多