301将所有页面重定向,但只有一个规则重定向到其他规则

时间:2018-06-12 10:47:24

标签: apache .htaccess

我想将subdomain.example.com重定向到newsubdomain.example.com。 两者都在相同的重定向规则下工作,但其中一条规则并不能满足我的需要。我需要在新规则下使用301重定向(使用其他URL结构)。

实施例: http://subdomain.example.com/c/138http://newsubdomain.example.com/138/

RewriteEngine on
RewriteCond %{HTTP_HOST} ^subdomain.example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301,NC]

RewriteCond %{QUERY_STRING} ^c/([^&]+)
RewriteRule ^/?category\.php$ http://www.alarab.com/%1/ [L,R=301]

有什么建议吗?

由于

1 个答案:

答案 0 :(得分:0)

第二条规则与此无关,只与第一条规则相关。

有两种方法可以进行批量重定向。一个是您RewriteRule的尝试,但您必须在 /c之后仅捕获最终路径部分,例如

RewriteRule ^c/(.*)$ http://www.example.com/$1 [L,R,NC]

第二种方式是来自Redirect

mod_alias
Redirect /c http://www.example.com

两种方式都捕获前缀后的部分并将其拍到目标路径上。

最后,无关,从不测试R=301