URL永久重定向

使用URL重写功能做URL永久重定向的规则:

RewriteEngine on

RewriteCond %{HTTPS} (on)?
RewriteCond %{HTTP:Host} ^(?!www\.)(.+)$ [NC]
RewriteCond %{REQUEST_URI} (.+)
RewriteRule .? http(?%1s)://www.%2%3 [R=301,L]

上面这个规则是把所有不是www打头的URL重定向到www打头的网址上,如

ljf.cn 定向到 www.ljf.cn

其中?!的正则表达式预搜索语法,表示所有缝隙的右侧必须不匹配规定的表达式“www.”,详细的正则语法请参考本站正则表达式参考文档。

当然,上面这条规则是针对泛解析的情形。如果你的站点只接受一个固定的域名,如“ljf.cn”,那完全可以简写为:

RewriteRule (.+) http://www.ljf.cn$1 [R=301,L]

当然,这么简写,就没有上面的规则那么灵活了。你必须指定固定的域名。

更多URL重写规则请参考这里:http://www.helicontech.com/isapi_rewrite/doc/examples.htm

这次旧话重提,是为了做ICP证年审。因为主机托管不在广东省内,导致ICP年审材料少了ISP证正副页复印件、年检记录复印件、跨地区经营备案复印件这些材料。不得已租多一个省内的虚拟主机,用省内的虚拟主机作为接入商来提交年检材料了。

一项政策,会产生很多歪曲的现象。虽然很多时候,我们是想行得正,做得正,但迫于现实条件,最终还是得选择一条可行的路。很无奈的现实。

HTTP通讯情况检查工具

推荐Fiddler2,下载地址:http://www.fiddler2.com/fiddler2/version.asp

使用这个工具的目的是检查网址重定向的情况。关于网址301重定向,还可以参考网页:

ASP.NET中的URL重定向

当然也有一些web工具可以检测,不过有时会发生DNS错误,检测不了。参考:

301重定向代码和检测工具

URL Redirect Check

ASP.NET中的301重定向

网站的301重定向一般用isapi_rewriter来做,只需要写规则,不需要改动网站程序。不过这样做也有限制,一般不能批量处理无规则的URL重定向,或者需要经过数据分析处理的URL重定向。

解决的方法是直接使用程序来完成URL重定向任务。ASP.NET中的URL重定向是通过Response对象来实现的,看例子:

protected void Page_Load(object sender, EventArgs e) 
{ 
Response.Clear(); 
Response.StatusCode = 301; 
Response.Status = "301 Moved Permanently"; 
Response.AddHeader("Location","http://www.ljf.cn"); 
} 

在ASP和PHP中,也有类似的功能,看ASP例子: 

ASP:
Response.Status="301 Moved Permanently" 
Response.AddHeader "Location","http://www.ljf.cn/" 
Response.End

看PHP例子: 

PHP:
header("HTTP/1.1 301 Moved Permanently");
header("Location:http://www.ljf.cn/");
exit(); 

至于重定向的目标网址,可以在前面通过程序甚至读取数据库进行分析组合都是可以的。

延伸阅读:

IIS 资源的永久重定向
开源的URL重写工具 urlrewriter.net
301重定向代码和测试工具
 

公告栏

  • 姓名:林剑锋(不见不散)
  • 来自:中国-广州
  • 简介:技术的信徒。
  • Email/QQ:admin@ljf.cn
  • 点击这里给我发消息

QQ群:设计学院 68075618,网站设计师 9908776

统计

文章:337篇
评论:173条 (2条Spam)
相册:1个 (121张图片)
主题:Nagrand新主题

www.ljf.cn网站PR查询