我正在尝试为包含大约400页的网站进行全站点301重定向,但也有大约10个单独页面的子集,这些页面不遵循网站范围的重定向,应该指向其他位置。
任何想法如何格式化此类重定向规则,以便全站重定向与子网页重定向不冲突?
我开始使用全站重定向规则:
选项+ FollowSymLinks RewriteEngine on RewriteRule(。*)http://www.name.com/ $ 1 [R = 301,L]
答案 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]