301永久重定向的执行方法

 我来答
凡尘丶嵮乊
2016-05-18 · 超过69用户采纳过TA的回答
知道答主
回答量:206
采纳率:100%
帮助的人:131万
展开全部

301永久重定向有几种不同的做法,在windows主机上和Unix/Linux主机是不同的。 可以在IIS服务器上设置也可以在代码中设置。
1、在IIS服务器上设置301的方法
这种设置方法需要有一个先天条件,那就是你有服务器的管理权,你可以直接操作IIS服务器,并且可以随意开通新的虚拟主机,否则你只能用修改网站代码的方法。
首先开通一个新的虚拟主机,将你需要做301永久重定向的域名正常与该空间绑定,这个绑定的方法你可以咨询服务器托管商。
然后打开“控制面板”→找到“管理工具”→打开“Internet 信息服务”。打开后,可以在管理器左侧树形菜单中找到你的网站,然后右击选择“属性”,打开网站的属性管理面板(如下图),并且选择到“主目录”选项卡,选择“重定向到URL”,然后在地址框中输入“主域名”,然后将选项卡中的“资源的永久重定向”选择上,点击确定即可设置完毕。
2、在网站代码中设置301的方法
只需要将以下代码加在网页的开头即可,不过只能用在ASP和PHP文件中,HTML无法通过代码设置301。
ASP代码: !
<%@ Language=VBScript %>
<%
Response.Status=301 Moved Permanently Response.AddHeader Location , http://www.###.com
%>
PHP代码:
<?
Header( “HTTP/1.1 301 Moved Permanently” );
Header( “Location: http://www.###.com” );
?>
注:将我的网址替换成你自己的定向后的目标网址即可,所有的标点必须用英文半角。
3、在博客中设置301的方法
这边以Z-Blog为例详细介绍一下:
1.复制如下代码,将代码中“###.com”改成你自己的网址即可。
if request.ServerVariables(SERVER_NAME)=###.com then
Response.Status=301 Moved Permanently
Response.AddHeader Location, http://www.###.com
Response.End
end if
2.进入Z-Blog后台,打开“文件管理”界面。
3.找到并打开网站根目录下的 default.asp 文件。
4.将以上代码加进 default.asp 在下图中红框所示位置。
5.最后确定无误点击 提交 保存。 可以用.htaccess文件
1. Apache模块 mod_alias的 Redirect 和 RedirectMatch命令
上面提到2个命令使用方法相似。而区别就是后者RedirectMatch基于正则表达式匹配对当前的URL发送一个外部重定向语法为:
Redirect [status] URL-path URL
RedirectMatch [status] regex URL
status参数可以使用以下HTTP状态码:
permanent
返回一个永久性重定向状态码(301),表示此资源的位置变动是永久性的。
temp
返回一个临时性重定向状态码(302),这是默认值。
seeother
返回一个“参见”状态码(303),表示此资源已经被替代。
gone
返回一个“已废弃”状态码(410),表示此资源已经被永久性地删除了。如果指定了这个状态码,则URL参数将被忽略。
举例:
APACHE Redirect 301 /old/old.htm http://www.###.com/new.htm  Redirect permanent /one http://###.com/two  RedirectMatch 301 (.*).gif$ http://www.###.com/images/$1.jpg 2.使用mod_rewrite重写URL方式
APACHE Options +FollowSymLinks  RewriteEngine on  RewriteCond %{HTTP_HOST} ^####.comRewriteRule ^(.*)$ http://www.###.com/$1 [R=permanent,L] 在这里判断当前服务器变量HTTP_HOST是否等于###.com,为真就进行重写,按照R=permanent进行永久重定向,L表示并立即停止重写操作,并不再应用其他重写规则
下面是最终实现的.htaccess文件,同时也并入wordpress重写规则。
APACHE # BEGIN WordPress  <IfModule mod_rewrite.c>  RewriteEngine On  #Redirect  Options +FollowSymLinks  RewriteCond %{HTTP_HOST} ^###.com$  RewriteCond %{HTTP_HOST} !^$  RewriteRule ^(.*)$ http://www.###.com/$1 [R=301,L]  #Rewrite(blog)  RewriteCond %{REQUEST_FILENAME} !-f  RewriteCond %{REQUEST_FILENAME} !-d  RewriteRule ^blog/.* /blog/index.php [L]  RewriteRule . -  </IfModule>  # END WordPress

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
您可能需要的服务
百度律临官方认证律师咨询
平均3分钟响应 | 问题解决率99% | 24小时在线
立即免费咨询律师
17040人正在获得一对一解答
上海旋风骑士2分钟前提交了问题
长春极地风情4分钟前提交了问题
天津金色童年5分钟前提交了问题
下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消
还有疑问? 马上咨询30843位在线律师,3分钟快速解答
立即免费咨询律师

辅 助

模 式