完善解决IIS和APACHE的301重定向(带参数)
发布时间:05/16 来源:未知 浏览:
关键词:
一、IIS 301重定向设置
通过本次设置IIS的重定向,感觉还是比较利便的。下面就说一下IIS的重定向要领,由于网站改版是面向目录的迁移的,所以不得不理解下列几个微软的IIS定向参数:
我们在设置URL重定向的时候是可以运用带参数情势URL的,由于究竟经常面临的URL是许多,如果就那么一两个页面301重定向随意怎么整都可以了。
参数1:$S ——通报URL的后缀到新的URL;
参数2:$P——通报URL 中的query参数到新的URL,不包括问号(?)
参数3:$Q——通报URL中的query参数到新的URL,包括问号(?),,所以在设置URL地址时,背面不要带问号,比方:
将//www.jb51.net/catalog.asp?cate=os&page=1,重定向到//www.jb51.net/category.php?cate=1&page=1
只需要在IIS里设置catelog.asp文件设置重定向到 category.php$Q。
参数4:$V——通报请求的URL,但是不包括服务器名和任何参数。
另外还有运用通配符重定向,这里不常用暂时不解说。
由于我们重定向多个目录,所以,要是单个去设置不一样的定向文件,那么IIS设置起来将会非常费事,但是要是都定向到一个文件然后再重定向,又会由于$_SERVER['HTTP_REFERER']没法取道对应的援用页面,效果为空,所以不得不采纳上面的参数进行通报,这时候只需要加个参数就可以解决援用页面的通报题目,比方/301.php?go=$V,这样就可以直接在php文件中进行URL 301重定向跳转处置了。
示例:
复制代码 代码如下:
<?php
$url=substr($_GET['go'],1);//去除最前面的斜杠
$e=explode('/',$url);//分割字符串
//判断并设置新的URL
$newurl='//www.jb51.net';
header("HTTP/1.1 301 Moved Permanently");
header("Location: ".$newurl);
?>
二、APACHE 301重定向
以上处置是面向IIS的,要是服务器采纳APACHE,那么要比起IIS重定向要简略的多,只需要修改.htaccess文件,独自定向即可,当然htaccess文件也是支撑正则表达式的,可以依据现实状况运用。
目录重定向示例:
复制代码 代码如下:
<Files ~ "^.(htaccess|htpasswd)$">
deny from all
</Files>
Options Indexes
ErrorDocument 404 /index.html
DirectoryIndex index.html default.html index.php index.htm default.htm
Redirect permanent /abc/ //www.jb51.net/
Redirect permanent /cde/ //www.jb51.net/
Redirect permanent /fgh/ //www.jb51.net/
order deny,allow
这样就可以实现APACHE 的301永恒重定向。
全站301重定向示例:
复制代码 代码如下:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^abc.com [NC]
RewriteRule ^(.*)$ //www.jb51.net/$1 [L,R=301]
特殊提示,完成301重定向设置后一定要现实测试一下到底是否准确返回301状态码,附一个测试地址:
http://www.seoconsultants.com/tools/headers.asp
以上地址在输入测试URL之后,会主动跳转到测试效果位置,即时查看页面的返回状态码,非常利便。 热门标签:dede模板 / destoon模板 / dedecms模版 / 织梦模板
责任编辑:7vjfo