• 欢迎访问Young Free!,欢迎加入 跨境电商交流 QQ群
  • Young Free 博客正在改版,A/B测试期间可能会遇到访问不正常,敬请谅解。联系QQ:444933144

修改.htaccess实现301重定向

挨踢网络 Young Free! 2503次浏览 2个评论 扫描二维码

修改.htaccess实现301重定向我的中国站长录在清理论坛垃圾贴时,由于数据库不堪重压,崩溃了。在不得已的情况下利用二级域名新开了一个论坛。为了将瞬时降到最小值,想尽了办法挽回流量和人气。刚开始想了利用404跳转帖子,也尝试了Refresh语法跳转到目标论坛,但是收效甚微。在网上搜索了很多方法,终于找到了利用修改.htaccess文件实现了域名跳转,既挽回了流量也转移了网站的权重,一举两得。

不过写.htaccess对我这个菜鸟来说可不是件容易的事。既想能够301重定向跳转域名,又想保证重定向后的伪静态规则不变。尝试了很多次,也遇到了很多问题,其中和大家分享两点:第一,伪静态和重定向规则的顺序不能错,必须是先重定向规则,然后伪静态规则;第二,为了保证伪静态后的页面能正常打开,必须在重定向后的域名尾添加 / ,否则会出错。例如重定向后的域名是 wiki.youngfree.cn 那么,必须改为 wiki.youngfree.cn/

下面的引用部分同时实现了301重定向和Discuz DZ论坛的伪静态。

# Use PHP5CGI as default

AddHandler fcgid-script .php

# 将 RewriteEngine 模式打开
RewriteEngine On

# 修改以下语句中的 /discuz 为你的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 /
RewriteBase /

# Rewrite 系统规则请勿修改

RewriteCond %{HTTP_HOST} !^www.cnzzl.info$ [NC]
RewriteRule ^(.*)$ http://bbs.cnzzl.info/$1 [L,R=301]
RewriteRule ^archiver/((fid|tid)-[w-]+.html)$ archiver/index.php?$1
RewriteRule ^forum-([0-9]+)-([0-9]+).html$ forumdisplay.php?fid=$1&page=$2
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+).html$ viewthread.php?tid=$1&extra=page%3D$3&page=$2
RewriteRule ^space-(username|uid)-(.+).html$ space.php?$1=$2
RewriteRule ^tag-(.+).html$ tag.php?name=$1

 

下面再转一篇不错的文章给大家看下,我就是按照下面这个来修改的。
VIA

出于SEO、PR值传递、网址转换的目的,在网站初建和网站迁移时我们都需要使用301重定向,通常包括域名对域名,目录对目录和一个独立网址对另一个独立网址的重定向。在bluehost虚拟主机上作301重定向,最常用的方法有2种:
1.直接编辑.htaccess。
2.用cPanel设定。
实质二者都是修改文件.htaccess,只是前者手工编辑,后者是由cPanel完成。用cPanel操作相当简单,登陆你的 cPanel(bluehost虚拟主机可以选简体中文)–>Domain–>Redirects,选择相应的选项即可完成设置,这里暂不讨论。下面讲一下直接编辑.htaccess的方法。
注意:在设置301重定向之前务必备份相应目录下的.htaccess文件。
1.重定向domain.com到www.domain.com
这种重定向旨在使域名唯一,是网站SEO必须要做的,后面重定向www.domain.com到domain.com也是出于同样的原因,只是形式不同。
打开.htaccess文件,加入以下规则。(下面的规则是针对主域名的,子域名要修改)

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

2.重定向www.domain.com到domain.com

RewriteEngine On
RewriteCond %{HTTP_HOST} !^domain.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]

3.重定向olddomain.com到www.newdomain.com

RewriteEngine On
RewriteCond %{HTTP_HOST} !olddomain.com$ [NC]
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [L,R=301]

4.重定向olddomain.com to newdomain.com

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !olddomain.com$ [NC]
RewriteRule ^(.*)$ http://newdomain.com/$1 [L,R=301]

5.重定向domain.com/file/file.php 到 otherdomain.com/otherfile/other.php

RewriteCond %{HTTP_HOST} ^www.domain.com$
RewriteRule ^file/file.php$ http://www.otherdomain.com/otherfile/other.php [R=301,L]


Young Free , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明修改.htaccess实现301重定向
喜欢 (0)
[alien01@163.com]
分享 (0)
关于作者:
欢迎来吐槽,也欢迎一起交流。如果无法在本文下评论,可以点击信封按钮,给我发送邮件。
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽
  1. 这个正需要哦
    法国红酒2011-11-26 14:19 Reply 未知操作系统 | 未知浏览器
    • 有用最好了。这个不太好搞,很容易出错的。
      杨景文YF2011-11-27 21:22 Reply 未知操作系统 | 未知浏览器