Wordpress 301使用htaccess重定向博客页面和所有其他页面

Wordpress 301使用htaccess重定向博客页面和所有其他页面,wordpress,apache,.htaccess,redirect,Wordpress,Apache,.htaccess,Redirect,我正在尝试将旧网站重定向到新网站。我把旧址分为两部分。博客文章和其他一切。我希望博客文章被重定向到他们在网站上的新位置,同时保持相同的URL(或多或少)。我想一切都重定向到新网站的主页 要求: 所有博客文章都应该重定向到相同的URL(没有/blog部分),但在新域上 所有非博客页面应重定向到单个新页面 例如: oldsite.com/-->www.newsite.com www.oldsite.com/register-->www.newsite.com www.oldsite.com/pic

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

要求:

  • 所有博客文章都应该重定向到相同的URL(没有
    /blog
    部分),但在新域上
  • 所有非博客页面应重定向到单个新页面
  • 例如:

    • 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


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

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

        RewriteEngine On
        RewriteRule ^(blog)(/.*)? http://$1.newsite.com$2 [R=302,L]
        RewriteRule .* http://www.newsite.com/ [R=302,L]
        
        这首先重定向“博客”URL,然后重定向其他所有内容。订单很重要

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


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

        我假设不同的物理服务器

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

        RewriteEngine On
        RewriteRule ^(blog)(/.*)? http://$1.newsite.com$2 [R=302,L]
        RewriteRule .* http://www.newsite.com/ [R=302,L]
        
        这首先重定向“博客”URL,然后重定向其他所有内容。订单很重要

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


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

        将以下代码放在@oldsite,main directory.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/directory.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/子目录/,请检查其中是否没有.htaccess,或者它们是否存在但没有任何内容,因此没有问题,但如果它们有一些规则,请确保它已调整为不影响/blog/目录。htaccess规则将以下代码放在@oldsite,main directory.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/directory.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/subdirectory/,请检查其中是否没有.htaccess,或者它们是否存在但没有任何内容,因此没有问题,但如果它们有一些规则,请确保它已调整为不影响/blog/directory.htaccess规则

        Yes。。旧站点和新站点位于两个独立的服务器上。。您是否建议将所有“其他”页面链接到新站点上的相应位置?如果是,持续多久?另外,由于顺序很重要,我会做一些类似于重定向302/contact的事情吗http://www.newsite/contact-us以上是您建议的规则?是的,您应该链接到新网站上的相应页面。。。尽可能长的时间(最好是永远,这取决于旧页面的链接程度)。如果您正在执行特定的重定向,那么是的,首先需要执行这些重定向。但是,您不能将mod_rewrite(
        RewriteRule
        )和mod_alias(
        Redirect
        )重定向混合使用-不同的模块在不同的时间执行,因此可能会出现意外冲突<代码>重写规则^contact$http://www.newsite/contact-us [R=301,L]。感谢您的洞察力和帮助!把所有的东西都装上电线并开始工作:)是的。。旧站点和新站点位于两个独立的服务器上。。您是否建议将所有“其他”页面链接到新站点上的相应位置?如果是,持续多久?另外,由于顺序很重要,我会做一些类似于重定向302/contact的事情吗http://www.newsite/contact-us以上是您建议的规则?是的,您应该链接到新网站上的相应页面。。。尽可能长的时间(最好是永远,这取决于旧页面的链接程度)。如果您正在执行特定的重定向,那么是的,首先需要执行这些重定向。但是,您不能将mod_rewrite(
        RewriteRule
        )和mod_alias(
        Redirect
        )重定向混合使用-不同的模块在不同的时间执行,因此可能会出现意外冲突<代码>重写规则^contact$http://www.newsite/contact-us [R=301,L]。感谢您的洞察力和帮助!我可能对此有点含糊不清,但旧网站是一个wordpress网站。我不知道有一个
        博客
        目录会包含一个.htaccess文件。好的,你只能访问主目录中的.htaccess吗?我可能对此有点含糊,但旧网站是wordpress网站。我不知道有一个
        blog
        目录会包含.htaccess文件。好的,您是否只能访问主目录中的.htaccess?