
标题: [其他] 301重定向的实现方法 [打印本页]
作者: admin 时间: 2009-5-25 15:56 标题: 301重定向的实现方法
设置.htaccess文件
使访问example.com的时候就会自动转到www.example.com
在.htaccess文件里写上以下代码即可。
- RewriteEngine On
- RewriteCond %{http_host} ^mydomain.com [NC]
- RewriteRule ^(.*)$ http://www.mydomain.com/$1 [L,R=301]
复制代码
如果是多条301重定向就需要写多行,例如想让verydz.com和www.verydz.net 都跳转到www.verydz.com,可以这样写:
- RewriteEngine On
- RewriteCond %{http_host} ^verydz.com [NC]
- RewriteRule ^(.*)$ http://www.verydz.com/$1 [L,R=301]
- RewriteCond %{http_host} ^www.verydz.net[NC]
- RewriteRule ^(.*)$ http://www.verydz.com/$1 [L,R=301]
复制代码 简化写法:
- RewriteEngine On
- RewriteCond %{http_host} !^www.verydz.com [NC]
- RewriteRule ^(.*)$ http://www.verydz.com/$1 [L,R=301]
复制代码
注意:URL标准化的301重定向(以上代码)需要写在其他URL-rewrite代码之前。
RewriteEngine on只能出现一次,如果已经有了就不用重复写了,这个要写在第一行。
例如:已经有了Discuz!伪静态代码,还需要加301重定向代码写法如下:
-
- # 将 RewriteEngine 模式打开
- RewriteEngine On
- RewriteCond %{http_host} ^mydomain.com [NC]
- RewriteRule ^(.*)$ http://www.mydomain.com/$1 [L,R=301]
- # 修改以下语句中的 /discuz 为您的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 /
- RewriteBase /
- # Rewrite 系统规则请勿修改
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^topic-(.+)\.html$ portal.php?mod=topic&topic=$1&%1
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^article-([0-9]+)-([0-9]+)\.html$ portal.php?mod=view&aid=$1&page=$2&%1
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^forum-(\w+)-([0-9]+)\.html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ forum.php?mod=viewthread&tid=$1&extra=page\%3D$3&page=$2&%1
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^group-([0-9]+)-([0-9]+)\.html$ forum.php?mod=group&fid=$1&page=$2&%1
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^space-(username|uid)-(.+)\.html$ home.php?mod=space&$1=$2&%1
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^blog-([0-9]+)-([0-9]+)\.html$ home.php?mod=space&uid=$1&do=blog&id=$2&%1
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^archiver/(fid|tid)-([0-9]+)\.html$ archiver/index.php?action=$1&value=$2&%1
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ plugin.php?id=$1:$2&%1
复制代码
作者: admin 时间: 2009-6-17 09:26 标题: 为什么要使用301重定向
301重定向可促进搜索引擎优化效果
从搜索引擎优化角度出发,301重定向是网址重定向最为可行的一种办法。当网站的域名发生变更后,搜索引擎只对新网址进行索引,同时又会把旧地址下原有的外部链接如数转移到新地址下,从而不会让网站的排名因为网址变更而收到丝毫影响。同样,在使用301永久性重定向命令让多个域名指向网站主域时,亦不会对网站的排名产生任何负面影响。
经常会碰到这样的情况,其他网站链接你的站点时,会用下面的链接:
www.example.com
example.com/
www.example.om/index.html
example.com/index.php
而这样导致:你站点主域名的pr值分散到其他几个URLs了。
如果你用301重定向把其他三个URL转到
www.example.com
PR也就集中在主域名:www.example.com 了。
作者: admin 时间: 2011-12-1 16:45 标题: 首页是静态页的话想实现二级域名访问论坛的方法
- RewriteEngine on
- RewriteCond %{HTTP_HOST} ^(bbs.)?verydz.com$
- RewriteCond %{REQUEST_URI} !^/forum.php
- RewriteCond %{REQUEST_FILENAME} !-f
- RewriteCond %{REQUEST_FILENAME} !-d
- RewriteRule ^(.*)$ /forum.php$1
- RewriteCond %{HTTP_HOST} ^(bbs.)?verydz.com$
- RewriteRule ^(/)?$ forum.php [L]
复制代码
作者: admin 时间: 2012-10-11 10:33 标题: 301重定向:Discuz安装不同系统的子目录
状况描述:301转向就不再多解释了,一般的linux系统平台上的网站在设置301转向的时候都是在根目录下添加.htaccess文件,文件里写相应的语句就可以了。但是我们可能会在这个网站的子目录安装不同的系统,比如在网站的forum文件夹目录下安装了discuz论坛,而你默认又启用了discuz的伪静态设置的话,则更根目录的301转向设置对这个forum目录是不起作用的。
现象描述:访问verydz.com可以自动301跳转到www.verydz.com;但是访问verydz.com/forum不会自动301跳转到www.verydz.com/forum。
原因分析: 301转向是通过.htaccess这是rewrite语句来实现的,而forum文件夹下的discuz论坛也启用了.htaccess 的rewrite语句来设置伪静态,在两者冲突的情况下,以当前目录为准。于是,根目录的301转向不在forum目录有效了。
解决方法:修改forum目录的.htaccess文件,再多添加一条对应的301 rewrite语句。
具体要实现三个目标:
1.先把http://verydz.com重定向到http://www.verydz.com
2.再把http://verydz.com/forum重定向到http://www.verydz.com/forum
3.同时要对DZ论坛的伪静态也起作用,使得http://verydz.com/forum/thread-155-1-1.html这样的地址也能成功重定向到http://www.verydz.com/forum/thread-155-1-1.html
根目录设置301转向的代码可以写成如下: - RewriteEngine On
- RewriteCond %{HTTP_HOST} ^verydz.com$
- RewriteRule ^(.*)$ http://www.verydz.com/$1 [R=301,L]
复制代码
但forum文件夹下的.htaccess文件就有变化了: - # 将 RewriteEngine 模式打开
- RewriteEngine On
- # 修改以下语句中的 /discuz 为你的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 /
- RewriteBase /forum
- # Rewrite 系统规则请勿修改
- RewriteCond %{HTTP_HOST} ^verydz\.com
- RewriteRule ^(.*)$ http://www.verydz.com/forum/$1 [R=301,L]
复制代码
然后这个下面跟着的就是DZ论坛原有的伪静态规则了
欢迎光临 帮助中心_DZ动力 (http://www.verydz.com/help/) |
Powered by Discuz! 7.2 |