您的位置:首页 > 运维架构 > 网站架构

301重定向:少部分网址做具体重定向,用LAST终止规则;再把整个网站 301,实现剩余页面重定向

2012-09-01 10:49 806 查看
学习301规则的地址:http://lamp.linux.gov.cn/Apache/ApacheMenu/rewrite/rewrite_guide.html

最终要的结果如下:

原网站首页、分类页分别301重定向到新网站(以下取名为NEW)的首页和分类页;

原网站剩余页面全部301到新网站的首页

修改原网站根目录下的.htaccess文件。在<IfModule mod_rewrite.c>模块最后,添加以下代码:

#原网站首页带index.php,跳转到目标网站

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/

RewriteRule ^index\.php$ http://www.NEW.com/ [R=301,L]

#分类页面跳转到新网站的分类页,可以照着以下格式,添加多行具体的网址

Redirect /category.php?id=6 http://www.NEW.com/category.php?id=12
#终止以上分类页面的重写,在这个规则后面的重写内容还是生效的

RewriteCond % ^Lynx/.* [OR]

#原网站剩余所有页面都跳转到新网站,当俩个网站的目录一样时,也会跳到对应的目录下,不一样的全部301到首页

RewriteCond %{HTTP_HOST} ^NEW.com [NC,OR]

RewriteCond %{HTTP_HOST} ^www.NEW.com [NC]

RewriteRule ^(.*)$ http://www.NEW.com/ [R=301]

============================ 以下为其他的301规则学习 =========================

(1) 将站内所有的子目录301到目标网站下,这个适用于站点程序没有变化,只是更改域名

Redirect permanent /http://www.NEW.com

(2 )终止301重写,以下规则就无效

RewriteRule .* - [L]

(3) 用301将绑定的其他多个域名重定向到主域名

RewriteCond %{HTTP_HOST} ^3798.cc$ [OR]

RewriteCond %{HTTP_HOST} ^bbs.37879.cc$ [OR]

RewriteCond %{HTTP_HOST} ^luoyang78.cc$ [OR]

RewriteCond %{HTTP_HOST} ^www.arlinger.cc$ [OR]

RewriteCond %{HTTP_HOST} ^bbs.arlinger.cc$

RewriteRule ^(.*)$ http://www.NEW.cn/$1 [R=301,L]

(4)如果需要变更域名,将老域名换成全新的域名,但是网页内容与结构不变,则可以使用以下代码来实现:

RewriteEngine On

RewriteBase /

RewriteCond %{HTTP_HOST} !旧域名$ [NC]

RewriteRule ^(.*)$ http://新域名/$1 [L,R=301]

(5)如果需要变更域名,将老域名换成全新的域名,但是网页内容与结构不变,则可以使用以下代码来实现:
RewriteEngine On

RewriteBase /

RewriteCond %{HTTP_HOST} !旧域名$ [NC]

RewriteRule ^(.*)$ http://新域名/$1 [L,R=301]

(6)将eobo.cn重定向至www.eobo.cn。本站就使用了这种重定向的方法避免页面权重分散。

一旦选择了带www的为主域名,今后就不要随意更改,方法如下:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www.eobo.cn$ [NC]

RewriteRule ^(.*)$ http://www.eobo.cn/$1 [L,R=301]

(7)目的: http://www.ffnn.fr/bbs/ 重定向301 到 http://bbs.ffnn.fr/ 效果: ffnn.fr/bbs/1111 310到bbs.ffnn.fr/1111

ffnn.fr/bbs/1111/2222 301到 bbs.ffnn.fr/1111/2222
1
2
3
4
RewriteEngine on
RewriteCond %{HTTP_HOST} ^ffnn.fr$ [OR]
RewriteCond %{HTTP_HOST} ^www.ffnn.fr$ 到这步都只是把@定性到www
RewriteRule ^bbs//?(.*)$ "http://bbs.ffnn.fr/$1" [R=301,L] 这步才是最终结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐