日期:2010-11-29  浏览次数:20841 次

ASP教程:UrlRewrite 使用参考文档

什么是UrlRewrite?
UrlRewrite 是 将静态页面转换为动态页面的一种技术. 例如.您网站页面是 http://www.yourdomain.com/news/docread.aspx?id=123 使用UrlRewrite转换后 可以 以 http://www.yourdomain.com/news/123.html 来访问.

UrlRewrite的用处: 满足搜索引擎的要求,google可以抓取动态页面,但是google对动态页面的评分一般低于静态页面.

UrlRewrite 对IIS 服务器和Apache服务器有不同的设置. 两种配置方法不同. 请广大用户千万注意.

Apache服务器设置: 您需要在网站根目录创建 .htaccess 文件.编写规则.

IIS 服务器设置: 您需要在网站根目录创建 httpd.ini 的配置文件, 编写规则.

由于 IIS下的httpd.ini和 Apache的.htaccess 文件 是两种完全不同的配置方式.两个不能互换使用. 编写URLReWrite 需要专业的技术人员.

如何对IIS服务器的网站 进行UrlRewrite的设置?

注意 使用URlRewrite 不能开启 网站自定义 404错误,否则 UrlRewrite将无法正常工作

isapi_rewrite利用正则表达式进行替换规则的表示。
您需要在您网站根目录 建立一个 httpd.ini 的配置文件,里面有UrlRewrite配置信息.

以下是httpd.ini 的内容

#----------------- httpd.ini 文件内容,您可以复制后上传到您网站根目录-----------
[ISAPI_Rewrite]
# 3600 = 1 hour 设置缓存时间 1个小时
CacheClockRate 3600
# 设置正则表达式 替换变量个数.
RepeatLimit 32

# Protect httpd.ini and httpd.parse.errors files from accessing through HTTP
# 以下UrlRewrite规则是为避免 网站的 httpd.ini httpd.errors 之类配置文件被下载.
RewriteRule ^/httpd(?:\.ini|\.parse\.errors).* [F,I,O]

# 正式URLRewrite规则 ,意思是 http://server/123.html 都将访问 动态页面 http://server/urlrwtest.asp?id=123
# 您需要根据您网站需要进行更改
RewriteRule /([0-9]*).html /urlrwtest.asp\?id=$1
#----------------- httpd.ini 文件内容结束-----------


urlrwtest.asp 文件 示例:
<%response.write "URLRewrite 测试:你访问的ID号 是:" & request("id")%>

文件保存后即可生效.
URLrewrite 支持 asp,asp.net,php 等各种脚本.

UrlRewrite 常见错误
1. 404错误(页面无法找到):没有网站根目录建立Httpd.ini 文件 或者 正则表达式 错误,都会导致 页面无法找到错误
2. 500错误(脚本程序错误): 目标动态页面程序错误
3. 404用户自定义错误: 如果网站管理员开启了404 网站自定义错误,urlrewrite将无法正常工作.