修改.htaccess实现301重定向
我的偶笑论坛已经开了快两个月了,感觉对于搜索引擎很不友好,有一点就是链接不统一,由于discuz的后台没有设置将有带www和没带www中的哪一个做为主网站的功能,所以我就直接动手了,刚刚修改偶笑论坛的.htaccess文件,终于实现了将所有的链接直接跳转到www.的链接了,当然现在地址统一对于搜索引擎来说将会是非常有用的,我也不用担心我这个论坛对于搜索引擎不好了。我所用的bluehost的cpanel里面也可以直接修改,不过经过我的测试好像不行,只能跳转从http:///到http://www./,其它的子链接不行。所以只有自己手动修改.htaccess,刚开始按照网上的说明修改,还是感觉不行,最后发现,原来这个添加是有顺序讲究的,所以大家以后在修改.htaccess的时候,如果发现不行,可以试着改变下顺序。下面为偶笑论坛的.htaccess里面的内容: # Use PHP5CGI as default AddHandler fcgid-script .php # 将 RewriteEngine 模式打开 RewriteEngine On # 修改以下语句中的 /discuz 为你的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 / RewriteBase / # Rewrite 系统规则请勿修改 RewriteCond %{HTTP_HOST} !^www.$ [NC] RewriteRule ^(.*)$ http://www./$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.重定向到www. 这种重定向旨在使域名唯一,是网站SEO必须要做的,后面重定向www.到也是出于同样的原因,只是形式不同。 打开.htaccess文件,加入以下规则。(下面的规则是针对主域名的,子域名要修改) RewriteEngine On RewriteCond %{HTTP_HOST} !^www.$ [NC] RewriteRule ^(.*)$ http://www./$1 [L,R=301] 2.重定向www.到 RewriteEngine On RewriteCond %{HTTP_HOST} !^$ [NC] RewriteRule ^(.*)$ http:///$1 [L,R=301] 3.重定向old到www.new RewriteEngine On RewriteCond %{HTTP_HOST} !old$ [NC] RewriteRule ^(.*)$ http://www.new/$1 [L,R=301] 4.重定向old to new RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !old$ [NC] RewriteRule ^(.*)$ http://new/$1 [L,R=301] 5.重定向/file/file.php 到 other/otherfile/other.php RewriteCond %{HTTP_HOST} ^www.$ RewriteRule ^file/file.php$ http://www.other/otherfile/other.php [R=301,L] |
|