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

时间:2016-05-02 22:55:16

标签: wordpress apache .htaccess redirect

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

要求:

  1. 所有博客文章都应重定向到相同的网址(不包含/blog部分)但在新域名
  2. 所有非博客页面都应重定向到一个新页面
  3. 示例:

    • 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

2 个答案:

答案 0 :(得分: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并且无论如何都会忽略它。

答案 1 :(得分:1)

将以下代码@ 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

如果有一些博客/子目录/,检查它们中是否没有.htaccess,或者它们是否存在但没有任何内容,所以没问题但是如果它们有一些规则,请确保它适应不影响/博客/目录.htaccess规则