全站301重定向,包含不同重定向的子集

时间:2010-03-13 18:02:46

标签: .htaccess http-status-code-301

我正在尝试为包含大约400页的网站进行全站点301重定向,但也有大约10个单独页面的子集,这些页面不遵循网站范围的重定向,应该指向其他位置。

任何想法如何格式化此类重定向规则,以便全站重定向与子网页重定向不冲突?

我开始使用全站重定向规则:

选项+ FollowSymLinks RewriteEngine on RewriteRule(。*)http://www.name.com/ $ 1 [R = 301,L]

1 个答案:

答案 0 :(得分:1)

重写规则按写入顺序进行解析,因此列出它们的顺序也会定义优先级。 鉴于此,您应首先将请求URI与10个单独的页面匹配,然后相应地返回重定向,然后定义站点范围的重定向。

如果10个单独的页面具有单个目标URL,则匹配规则可以是1,否则您应该为每个请求URI执行单个重定向。

注意使用[L]标志进行第一次重定向,如果规则匹配则告诉服务器退出例程,我还建议添加行

RewriteBase /

这对某些Apache版本至关重要,其中省略此行可能会导致http错误配置错误。

Options +FollowSymLinks

#switch on the rewrite engine:
RewriteEngine On
RewriteBase /

#rules for the individual redirections:
RewriteRule http://example.com/myUrl-1 http://www.example.org/new-1 [R=301,L]
RewriteRule http://example.com/myUrl-4 http://www.example.org/new-2 [R=301,L]
RewriteRule http://example.com/myUrl-3 http://www.example.org/new-3 [R=301,L]
#...and so on

#sitewide redirection rule:
RewriteRule (.*) http://www.example.org/$1 [R=301]