修改.htaccess实现301重定向

我的偶笑论坛已经开了快两个月了,感觉对于搜索引擎很不友好,有一点就是链接不统一,由于discuz的后台没有设置将有带www和没带www中的哪一个做为主网站的功能,所以我就直接动手了,刚刚修改偶笑论坛的.htaccess文件,终于实现了将所有oxiao.com的链接直接跳转到www.oxiao.com的链接了,当然现在地址统一对于搜索引擎来说将会是非常有用的,我也不用担心我这个论坛对于搜索引擎不好了。我所用的bluehost的cpanel里面也可以直接修改,不过经过我的测试好像不行,只能跳转从http://oxiao.com/http://www.oxiao.com/,其它的子链接不行。所以只有自己手动修改.htaccess,刚开始按照网上的说明修改,还是感觉不行,最后发现,原来这个添加是有顺序讲究的,所以大家以后在修改.htaccess的时候,如果发现不行,可以试着改变下顺序。下面为偶笑论坛的.htaccess里面的内容

# Use PHP5CGI as default
AddHandler fcgid-script .php
# 将 RewriteEngine 模式打开
RewriteEngine On

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

# Rewrite 系统规则请勿修改

RewriteCond %{HTTP_HOST} !^www.oxiao.com$ [NC]
RewriteRule ^(.*)$ http://www.oxiao.com/$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]


71 Responses to “修改.htaccess实现301重定向”

  1. Heyi说道:

    Apache Mod_Rewrite的瑞士军刀很实用,很强大。

  2. schuen说道:

    要空间支持的

    • sale说道:

      我已经把网站http://www.sale00.com记久重定向到http://sale00.com了
      奇怪了现在突然又没用了

  3. Yacca说道:

    重定向这事…我是不去想了,url破就破吧.

  4. 阿夏说道:

    一只高级菜鸟飞过。。。

  5. lidiy说道:

    这个有用支持下~

  6. 很实用网站说道:

    服务器这玩意我还没有研究过。改天有机会接触了过来跟你学学。

  7. rain说道:

    个人感觉bluehost收录感觉没有那么爽

  8. 二兵青年说道:

    应该和服务商关系不大吧,discuz对引擎友好度本身就没有wp强…

  9. Black-Xstar说道:

    考试的时候我为了www到nowww的301弄了很久htaccess,最后还是不行。
    后来发现wp有个插件就能实现这个功能,直接用了。

  10. 设计酷说道:

    不错,我已重定向了域名网址 原域名是www.strongerdesign.cn.点后转向设计酷

    http://www.sjcool.net

  11. huangchuan说道:

    htaccess这个文件在网站的根目录里,而整个目录里有好几个不同的站点,我要对其中一个站点的米进行重定向,该怎么操作呢?

  12. 不错,我也来重定向域名网址

  13. wind说道:

    正在找此文章呢,正好用上

  14. 华晨说道:

    我试过了,我想用不带www的,没反应

  15. 印第安小狮说道:

    很好奇 这个域名解析那边做修改不知道效果是不是类似?

  16. gary说道:

    为什么我把domain.com定向到www.domain.com后,www.domain.com/blog就直接进不去了。。。

  17. crusher说道:

    我见好多种写法都不一样,哪种是正确的啊。
    Options +FollowSymlinks
    RewriteEngine on
    rewritecond %{http_host} ^rockscrusher.com [nc]
    rewriterule ^(.*)$ http://www.rockscrusher.com/$1 [r=301,nc]

  18. 小可人说道:

    一个站长,有多少事是在为搜索引擎而折腾。

  19. GOVO说道:

    大侠,求助啊!也是关于链接重定向的问题, 我发到wordpress.org.cn的帖子上了,请兄台有空看看,谢谢!
    http://www.wordpress.org.cn/viewthread.php?tid=61327&page=1&extra=#pid504433

  20. 西西说道:

    我就是用的这个方法 很好

  21. kevin说道:

    想问一下:重定向blog.domain.com到www.domain.com,应该如何写?

  22. crusher说道:

    不错,之前一直不是很懂,现在看了基本有所了解了,谢谢楼主提供的资料,支持一下

  23. Fanr说道:

    这个得去试试~

  24. skeyal说道:

    请问下怎么实现url后缀的跳转?
    比如:www.google.com/123.htm跳转到www.google.com/123.html

  25. 研报网说道:

    怎么把主域名重定向到子域名啊?
    我的主域名下的网站搬家到子域名,想先重定向,过段时间重建主站。

  26. sale说道:

    介绍的不错,我已经把网站http://www.sale00.com记久重定向到http://sale00.com了

  27. alone说道:

    介绍的很详细哦!不知道我网站是.net的该如何设置301呢?

  28. jack说道:

    好文章,我通过这篇文章基本上算实现了301 重定向的功能,但还有一些没搞明白。请博主帮我看看。

    如何http://www.hugege.com/123.html 301重定向到 http://www.hugege.com

    我的网站是使用的是伪静态的。

    谢谢

  29. ynihao说道:

    介绍的不错,我已经把网站http://ynihao.com重定向到http://www.ynihao.com了

  30. adong说道:

    看了你的文章,己将湖南特产http://www.techanz.com重定向到http://techanz.com

  31. Pearl说道:

    保留了你的.htaccess内容, 🙂

  32. hammer crusher说道:

    低级菜鸟没看懂…

  33. 3qsami说道:

    “如果发现不行,可以试着改变下顺序”真是画龙点睛之笔!

  34. 爱蝌蚪说道:

    终于找到各靠谱的方法了

  35. # BEGIN WordPress

    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    # END WordPress
    我的htsccess文件里已经有这些了,怎么办啊?
    看网上说要加
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^oushistyle.com [NC]
    RewriteRule ^(.*)$ http://www.oushistyle.com/$1 [L,R=301]
    这个,但是到底是加到里面哪里啊?还是把原来的删掉再加啊?

  36. itvip说道:

    我也把itvip.net重定向到www.itvip.net了,就是带“www”的网址百度收录一下剩一个了,原来还有二十来页呢!
    还有我查的网上介绍的,都是Liunx的虚拟主机,代码却是:
    Options +FollowSymLinks
    RewriteEngine on   
    RewriteCond % ^yourdomain.com   
    RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [R=permanent,L]
    这是为什么?

  37. Jackie luo说道:

    打开.htaccess文件,加入以下规则。(下面的规则是针对主域名的,子域名要修改)

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

    如果是文章页面的话应该怎么写啊
    比如说abc.com/blog/123.html
    改写成www.abc.com/blog/123/html 改这个文件能实现吗?谢谢!

  38. kid说道:

    求解,那个“!”什么意思 是非么 说不通啊 求解啊 大神们

  39. 老k博客说道:

    还要考虑端口不是80的情况,以将不带www的域名重定向带www的情况,官方的例子是这样的:
    # For sites running on a port other than 80
    RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
    RewriteCond %{HTTP_HOST} !^$
    RewriteCond %{SERVER_PORT} !^80$
    RewriteRule ^/(.*) http://www.example.com:%{SERVER_PORT}/$1 [L,R]

    # And for a site running on port 80
    RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
    RewriteCond %{HTTP_HOST} !^$
    RewriteRule ^/(.*) http://www.example.com/$1 [L,R]

  40. Spaghetti说道:

    不错的介绍,重新定向我的网站。

    修改.htaccess 。而且操作起来并不难,正好用上了!

  41. 装饰说道:

    找了好久了呢,

  42. 小惗说道:

    头疼啊~不弄了

  43. 甜甜夜梦网说道:

    很有帮助啊谢谢啦!

  44. 花端梦说道:

    呵呵,很齐全啊

  45. Virusnt说道:

    看了博主的技术文章受益匪浅

  46. ysq说道:

    输入不带/的会跳出原形,博主试试。

  47. zuizhen说道:

    正在找这样的文章,我这就试试看

  48. 123说道:

    怎么样实现301 xxx.com到www.xxx.com 和index.html,index.php几个同时转到www.xxx.com主页呢?

Post a Comment

Blue Captcha Image
Refresh

*