如何通过url重写和重定向规则实现301重定向

网站做301重定向设置:介绍各种常用的URL重写规则代码 - 古月小简
当前位置: >
> 查看文章
网站的重定向可以通过各种方法来实现,如果你使用的是winVPS可以直接在IIS里直接设置,使用的虚拟主机也可以通过后台管理面板设置,今天小简要介绍的是apache服务器个人站长比较常用的通过修改.htaccess文件添加来实现重定向!
首先我们来了解下什么是.htaccess文件
直白的说,.htaccess文件只是一个简单的文档,可以在里面加些简单的命令实现各种不同的设置。
我们在一个特定的文档目录中放置一个包含指令的文件, 以作用于此目录及其所有子目录。这就是.htaccess文件!
我们可以利用.htaccess文件针对目录改变其配置!
我们在网站建设中,有时会对网站访问进行重定向设置(比如为了转移权重让访问的用户跳转的)这个应该是大家最常用到的!这样我们就可以用最直接最有效的做法通过URL重写规则实现!
首先,我们要修改的是.htaccess文件,在设置301重定向之前一定要记得备份原来的.htaccess文件,一般情况下如果你使用的是Windows主机.htaccess文件是在/htdocs目录下,如果你使用的是Linux主机是在根目录下
小简来解释下下面的规则代码:
RewriteEngine on是开始url重写模块,on是启用!如果为off的话,规则就不起作用了!接下来就是域名匹配,你要用的话直接把代码里的域名换你自己的。最后目标地址匹配(也就是重定向后的地址)。后面的R=301,也可以这样写:R=permanent 这个是表示永久重定向!L是重定向的参数,表示重写停止!
下面两个规则适合我们网站顶级域名二级域名直接的权重转移!可以把不带WWW的权重转移到带WWW的网址或者把带WWW的权重转移到不带WWW的上来
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^ [NC]
RewriteRule ^(.*)$ /$1 [L,R=301]
上面的代码是将不带www的域名重定向到带www的域名。如重定向到也用了301重定向!
——————————————————————————
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^$ [NC]
RewriteRule ^(.*)$ /$1 [L,R=301]
重定向到,和第一个一样!域名相反
下面两个规则经常用于更换域名需要做的!有时候我们因为种种原因,需要换域名,就可以下面的规则
RewriteEngine On
RewriteCond %{HTTP_HOST} !$ [NC]
RewriteRule ^(.*)$ /$1 [L,R=301]
不同域名之间顶级域名和二级域名的重定向.如:重定向到
———————————————————————————–
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !$ [NC]
RewriteRule ^(.*)$ /$1 [L,R=301]
不同域名之间顶级域名和顶级域名的重定向,如:重定向到
下面这个规则更改域名的同时,网站目录路径也会发生变化,有时候我们想把某个页面重定向到另外一个域名的页面就可以用下面这个规则!
RewriteEngine On
RewriteCond %{HTTP_HOST} ^$
RewriteRule ^abc/01.php$ /123/02.php [R=301,L]
不同域名之间,不同文件的重定向,实现/abc/01.php这个页面重定向到/123/02.php
主机是否支持.htaccess文件?你应该询问的你的主机服务商。一般来说,不管你的主机使用的是什么版本的Apache网络服务器,理论上都是支持.htaccess文件的,但是有的主机服务商可能不允许你使用它!所以必须是服务器支持修改.htaccess文件,根据空间实际情况操作!不然你的.htaccess文件是没有作用的~!
一般我们网站出现问题,或者查询的时候都会返回一个网站状态码
下面整理了所有http状态码含义表,需要的可以了解一下!
100 – 表示已收到请求的一部分,正在继续发送余下部分。
101 – 切换协议。
2xx – 成功。服务器成功地接受了客户端请求:
200 – 确定。客户端请求已成功。
201 – 已创建。
202 – 已接受。
203 – 非权威性信息。
204 – 无内容。
205 – 重置内容。
206 – 部分内容。
300 – 针对收到请求,服务器可执行多种操作。
301 – 永久移动转移,请求的内容已永久移动其他新位置。
302 – 临时移动转移,请求的内容已临时移动新的位置。
304 – 未修改。自从上次请求后,请求的内容未修改过。
307 – 临时重定向。服务器目前从不同位置响应请求,但请求者应继续使用原有位置来进行以后的请求。
400 – 错误的请求。
401 – 访问被拒绝。
IIS 定义了许多不同的 401 错误,它们指明更为具体的错误原因。这些具体的错误代码在浏览器中显示,但不在 IIS 日志中显示:
401.1 – 登录失败。
401.2 – 服务器配置导致登录失败。
401.3 – 由于 ACL 对资源的限制而未获得授权。
401.4 – 筛选器授权失败。
401.5 – ISAPI/CGI 应用程序授权失败。
401.7 – 访问被 Web 服务器上的 URL 授权策略拒绝。这个错误代码为 IIS 6.0 所专用。
403 – 禁止访问:
IIS 定义了许多不同的 403 错误,它们指明更为具体的错误原因:
403.1 – 执行访问被禁止。
403.2 – 读访问被禁止。
403.3 – 写访问被禁止。
403.4 – 要求 SSL。
403.5 – 要求 SSL 128。
403.6 – IP 地址被拒绝。
403.7 – 要求客户端证书。
403.8 – 站点访问被拒绝。
403.9 – 用户数过多。
403.10 – 配置无效。
403.11 – 密码更改。
403.12 – 拒绝访问映射表。
403.13 – 客户端证书被吊销。
403.14 – 拒绝目录列表。
403.15 – 超出客户端访问许可。
403.16 – 客户端证书不受信任或无效。
403.17 – 客户端证书已过期或尚未生效。
403.18 – 在当前的应用程序池中不能执行所请求的 URL.这个错误代码为 IIS 6.0 所专用。
403.19 – 不能为这个应用程序池中的客户端执行 CGI.这个错误代码为 IIS 6.0 所专用。
403.20 – Passport 登录失败。这个错误代码为 IIS 6.0 所专用。
404 – 未找到请求的内容。
404.0 – 未找到文件或目录。
404.1 – 无法在所请求的端口上访问 Web站点。
404.2 – Web 服务扩展锁定策略阻止本请求。
404.3 – MIME 映射策略阻止本请求。
405 – 用来访问本页面的 HTTP 谓词不被允许(方法不被允许) 。
406 – 客户端浏览器不接受所请求页面的 MIME 类型。
407 – 要求进行代理身份验证。
412 – 前提条件失败。
413 – 请求实体太大。
414 – 请求 URI 太长。
415 – 不支持的媒体类型。
416 – 所请求的范围无法满足。
417 – 执行失败。
423 – 锁定的错误。
500 – 服务器内部错误。
500.12 – 应用程序正忙于在 Web 服务器上重新启动。
500.13 – Web 服务器太忙。
500.15 – 不允许直接请求 Global.asa。
500.16 – UNC 授权凭据不正确。这个错误代码为 IIS 6.0 所专用。
500.18 – URL 授权存储不能打开。这个错误代码为 IIS 6.0 所专用。
500.100 – 内部 ASP 错误。
501 – 服务器无法完成请求的功能。
502 – 服务器用作网关或代理服务器时收到了无效响应。
502.1 – CGI 应用程序超时。
502.2 – CGI 应用程序出错。
503 – 服务不可用。这个错误代码为 IIS 6.0 所专用。
504 – 网关超时。
505 – HTTP 版本不受支持。
真正过得精彩的人并不需要刻意的向别人去炫耀自己的生活
你可能也喜欢Related Posts
网友讨论Comments
小提示:直接粘贴图片到输入框试试
努力发送中...
说: 说: 说: 说: 说: 说: 说: 说: 说: 说:
未经许可请勿自行使用、转载、修改、复制、发行、出售、发表或以其它方式利用本网站之内容
Copyright (C) 古月小简 All Rights Reserved.
Copyright &copy 2012-
All rights reserved. 版权所有.查看: 3070|回复: 4
注册时间最后登录阅读权限20积分1484精华0帖子
助理, 积分 1484, 距离下一级还需 1516 积分
本帖最后由 logo11设计网 于
11:34 编辑
好几年不做站了,听说淘客很赚钱,趁暑假有时间做个淘宝客站,在易名申请了个CN域名,买了个香港的空间,解析什么的都做好了,可是就是打不开网站,用空间自带的二级域名能打开,我仔细检查了一下,原来是域名给锁住了,不备案不给用,呵呵,50元打水漂了,没办法到GODADDY上又买了域名,用了几天后,空间又打不开了,找空间商人家说没事,我又检查了几次,发现PING时不能解析,以为是GODADDY的问题,我说人家这么大的域名注册商也出问题啊,看来咱是太落伍了,后来用代理一试没问题啊,上网查了下资料,月光博客也提到了说部分地区使用GODADDY的DNS解析被屏蔽了,只好把DNS解析换成DNSPOD的了,用着真不错,一个多月过去了也没出什么问题。原来绑定了一个主域名和一个WWW的域名,这几天发现两个都被百度收录了,WWW的天天快照,主域名要隔两天,听别人说这样不利于SEO优化,权重太分散,得做301重定向,想把主域名301转向到WWW的域名,在网上找了很多资料,都是用代码一实现,试了都不行,原来我的空间是WIN的,实现起来有点困难,还不知道有没有副作用,正寻思着这几天换空间呢,今天打开邮箱一看,有一封来自DNSPOD的信
亲爱滴DNSPod用户:
为了给大家提供更优质的DNS解析服务,阿D决定在8月25日对产品线进行全新升级,此次升级会将超值套餐的服务免费提供给大家,以后免费解析不仅更快更稳定,而且还可以享受更多更强大的功能,比如多至10条的URL转发,更强大的宕机检测,2级泛解析,域名共享、搜索引擎线路划分等。
上网站看看,到底有什么更强大的功能呢
个性的网站入口,用户体验更人性化
有了URL转发,您的用户可以更轻松的访问您的网站,而不必记忆那繁琐冗长的地址。假如您有两个域名,通过URL转发,可以将其中的个性域名重定向到另一个域名上,这样您的用户就可以通过这个个性的域名地址来访问您的网站。不仅这样,它还可以将您的老域名的权重转移到新域名上,省去了搜索引擎重新收录给您带来的麻烦,提高新域名的知名度。
看到了没有,URL转发居然能转权重,这不是我正要实现的301转向吗?先来试试看能用不,呵呵
主机记录,因为我这里是主域名转到WWW域名,所以主机记录不用填,记录类型选URL,记录值我这里是也就是我要转的网址,好了,测试了下,主域名x成功转到了www域名,在DNSPod后台修改记录,您会发现,几乎在您修改完记录后,眨眼的时间就已经生效了,再也不用等待10分钟甚至更多的时间了。
超短的服务器监控间隔,给您的网站保驾护航
跟服务器宕机带来的担忧和烦恼说再见吧。宕机检测功能可以在您的服务器出现故障宕机时,将域名自动解析到备用服务器上,当挂掉的服务器恢复后将自动切换回原IP,而这一切仅需要您轻轻一点鼠标即可完成。全面升级的免费套餐拥有超短的服务器监控时间,宕机检测效率比之前提高了5倍,让您从此高枕无忧。
这个服务器监控看起来也不错,还有没试用,有兴趣的可以用一下,小弟第一次写,语句不太通,请大家多多支持。
附件: 你需要才可以下载或查看附件
冒险岛私服
总评分:&金币 + 1&
注册时间最后登录阅读权限150积分11598精华2帖子
新人训练营版主巡逻中,有问题请发私聊!
感谢分享,哈哈哈
这才是签名栏:
注册时间最后登录阅读权限10积分290精华0帖子
实习生, 积分 290, 距离下一级还需 710 积分
AD签定完毕!!
注册时间最后登录阅读权限10积分21精华0帖子
非常感谢!!
现在dnspod的301重定向已经修改设置方式了
但是也要谢谢你的分享
现在修改为显性URL,剩下的设置与你分享的还是一样的。
非常感谢!!
注册时间最后登录阅读权限150积分3873精华2帖子
实习版主在线,欢迎留言提建议!
积极发帖、乐于助人的新注册用户(领取成功将扣除200金币)
上传清晰的正面真实照片,并且审核通过
经常在论坛发帖,且发帖量较大,发帖内容较新颖的会员(领取成功将扣除500金币)
为论坛做出突出贡献的会员(领取成功将扣除2000金币)
活跃且尽责职守的优秀版主
Powered by如何通过URL重写规则实现301重定向_百度知道编程(21)
在很多情况下,网站都需要进行301或302重定向,其中一个为永久重定向,一个为临时重定向。比如网站整个更换了域名,比如网站结构或目录发生了移动,比如需要将某个域名上的文件迁移到另外的域上等等。
有时候这种重定向对SEO或者PR值的传递是非常有效的。一般我们有几种途径制作一个htaccess文件,比如自己手动编辑,好处是非常灵活、功能强大,但坏处是很容易出错,我们强烈建议用本站的工具自动生成这个文件;另一种途径是通过空间里的控制面板进行自动编辑,这种方法比较死板,但不会因为人为原因出错,除非设置错了。
比如CPanel控制面板中,在Domain&Redirects里面,直接选择相应的选项即可。下面我们来详细讨论一下如何手动编辑这个htaccess文件:
务必注意:在编辑之前请备份原来的htaccess文件,以免造成损失。
1、出于SEO考虑,将重定向至。本站就使用了这种重定向的方法避免页面权重分散。
一旦选择了带WWW的为主域名,今后就不要随意更改,方法如下:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^$ [NC]&
RewriteRule ^(.*)$ /$1 [L,R=301]
上面这一句话是从反面来写的:如果域名不是带WWW的,就统一301跳转到带WWW的域名中去
2、如果需要将域名从跳转到,则可以使用一下代码:
RewriteEngine On&
RewriteCond %{HTTP_HOST} !^$ [NC]&
RewriteRule ^(.*)$ /$1 [L,R=301]
3、如果需要变更域名,即将老域名换成全新的域名,但是网页内容与结构不变,则可以使用以下代码来实现:
RewriteEngine On&
RewriteBase /&
RewriteCond %{HTTP_HOST} !$ [NC]&
RewriteRule ^(.*)$ /$1 [L,R=301]
如果是带WWW的域名间跳转,则以此类推,在域名前加上WWW即可。
以上方法是所有的域名都跳转到指定的网站,有时候可能不需要某些域名跳转,可以用如下的方式:
把不带www的域名301到带www的域名
RewriteEngine On
RewriteCond %{http_host} ^$ [NC]
RewriteRule ^(.*)$ /$1 [R=301,L]
“RewriteEngine On”,开启 Rewrite 规则开关;
“RewriteCond”指重写的条件。后面的字符串通过正则表达式进行匹配,匹配字符串以 ^ 开头并以 $ 结尾。此处 %{http_host} 获取当前主机名称。条件为“当主机名称为”时执行下列的重写规则。其中“[NC]”指不区分大小写;
“RewriteRule”,定义一条重写规则。此处含义:跳转到“/”接上访问请求的网址中
后面的部分。[R=301] 指重写为 301 重定向/跳转([R] 单指跳转,意义等同 [R=302]),[L] 指最后一条匹配规则。
把老域名301到新域名
更换域名时,老域名的权重不能浪费了,把老域名的顶级域名和带www的域名都要301到新域名,代码如下
RewriteEngine On
RewriteCond %{http_host} ^(www.)?$ [NC,OR]
RewriteCond %{http_host} ^$ [NC]
RewriteRule ^(.*)$ /$1 [R=301,L]
现在无论你访问,,都会301到 够完美了吧!而且所有的内页也会跟着301,接下来至少等待2个月,期间不要删除原域名,静等权重完全转移!
需要注意的是,wordpress默认情况下不支持该条命令,因为wordpress的网址本身就是伪静态的,要想实现这个功能,必须先把wordpress的内页生成html文件。
IIS 6中的.htaccess 301定向
以下规则适用于 IIS 6中的 ISAPI_Rewrite 2.x 3.x 中的httpd.ini或.htaccess
注意这儿的.htaccess不是apache中的.htaccess 规则略有不同。
RewriteCond %{HTTP:Host} ^$
RewriteRule (.*) /$1 [NC,R=301]
一般来说,以上这些是网站建设过程中非常常用的几行代码。这些代码对Google非常适用,Google很快就会按照你的意愿将收录的网址改变过来,并且如果换了域名,还能保留以前域名的PR值。
如果个别服务器不支持htaccess ,可以用php代码重定向,加入到公共入口头部
一共有1位博乐进行推荐
博文介绍了 通过htaccess实现301重定向常见的方法,很不错的方法介绍,点点滴滴的介绍,必将带来翻天覆地的变化,加油!
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:63009次
积分:1381
积分:1381
排名:千里之外
原创:56篇
转载:101篇
评论:12条
(7)(3)(3)(5)(4)(18)(16)(9)(14)(2)(1)(2)(1)(4)(3)(7)(3)(5)(13)(8)(10)(10)(8)这是一个程序猿的独立博客,主要分享与编程技术有关的内容,包括.NET、数据库、WEB前端、网站开发与建设、各种开发工具和插件等。
这里也是博主记录工作经验和生活感悟的地方。
PS:博主是一名.NET程序员,也是一名草根站长,目前主要从事ASP.NET网站开发工作,更多信息请点击。
文章总数:242
评论总数:113
浏览总数:415796
本月文章:0
本站作品采用进行许可。}

我要回帖

更多关于 php实现301重定向 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信