如何做301重定向到多个页面

时间:2012-01-11 13:54:26

标签: .htaccess

我有两个网站,

这两个网站都包含很少的页面,而wordpress博客,请按照结构

www.firstwebsite.com
-Root
  -index.html
  -about.html
  -Blog
    -blog page1
    -blog page2

www.secondwebsite.com
-Root
  -index.html
  -about.html
  -Blog
    -blog page1
    -blog page2

现在,我想使用htaccess 301重定向将www.firstwebsite.com的所有博客页面(即博客文件夹下的页面)重定向到www.secondwebsite.com/blog。

我知道我可以像

那样重定向
Redirect 301 /a.html www.secondwebsite.com/blog
Redirect 302 /b.html www.secondwebsite.com/blog

但是如果有任何简单的方法,那么我可以通过在.htaccess文件中只写一行来重定向所有页面,因为所有页面的目的地是相同的

1 个答案:

答案 0 :(得分:1)

为此

使用RewriteRule
RewriteEngine On
# If the hostname for this request matches www.firstwebsite.com...
RewriteCond %{HTTP_HOST} ^www\.firstwebsite\.com$ [NC]
# Redirect all requests in Blog/ to the equivalent on www.secondwebsite.com
RewriteRule Blog/(.*) http://www.secondwebsite.com/Blog/$1 [L,R=301,QSA]

RewriteCond是请求主机名的条件匹配。如上所述,我们仅将重写应用于匹配www.firstwebsite.com的请求。最后的[NC]使其不区分大小写。

RewriteRule使用表达式Blog/(.*)来匹配对Blog目录的所有请求,捕获匹配组中/之后的所有内容。然后,使用请求www.secondwebsite.com/Blog中的匹配(.*)将请求重写为$1,因此整个请求在www.secondwebsite.com中完全相同。