ASP.NET 能通过 httpd.ini实现伪静态吗?怎样实现?

ASP.NET 能通过 httpd.ini实现伪静态吗?怎样实现?,第1张

你好,我来说一下

首先简介:

你所说的httpd.ini就是ISAPI_Rewrite

ISAPI_Rewrite是一个功能强大的网址操纵发动机的基础上正则表达式。它的行为是像Apache的mod_Rewrite

,但专为微软的Internet信息服务(

IIS

)

所以他是可以用来做基于iis的任何程序开发的伪静态(asp,asp.net,php,cgi等等)

2.用法:

#

排除当前虚拟主机需要正常访问的域名(web.eboat.cn

www.eboat.cn)

#

RewriteCond

Host:

(?:web|www)\.eboat\.cn

#

多数情况下是一个,即当前提供二级域名服务的系统(如建站系统)

RewriteCond

Host:

web\.eboat\.cn

RewriteRule

(.*)

$1

[L]

#

解决不规范目录(末尾无/)的问题

#

但前提是目录名不含‘.’而文件名必须包含,否则无法区分两者

#

如果保证URL中的目录名称规范,则无需此规则

RewriteRule

^/([^.]+[^/]$)

/$1/

[L,R]

#

提取任意的二级域名名称(即第一个词汇)

#

用[a-zA-Z0-9_-]限制名称字符,重写Url到Home/子目录下

#

test.eboat.cn

=>

web.eboat.cn/Home/test

RewriteCond

Host:

([a-zA-Z0-9_-]+)\.eboat\.cn

RewriteRule

^/(.*)

/Home/$1/$2

[I,L]

[ISAPI_Rewrite]

RepeatLimit

1

#

Defend

your

computer

from

some

worm

attacks

RewriteRule

.*(?:global.asa|default\.ida|root\.exe|\.\.).*

.

[F,I,O]

#

排除当前虚拟主机需要正常访问的域名(web.eboat.cn

www.eboat.cn)

#

RewriteCond

Host:

(?:web|www)\.eboat\.cn

#

多数情况下是一个,即当前提供二级域名服务的系统(如建站系统)

RewriteCond

Host:

web\.eboat\.cn

RewriteRule

(.*)

$1

[L]

#

解决不规范目录(末尾无/)的问题

#

但前提是目录名不含‘.’而文件名必须包含,否则无法区分两者

#

如果保证URL中的目录名称规范,则无需此规则

RewriteRule

^/([^.]+[^/]$)

/$1/

[L,R]

#

提取任意的二级域名名称(即第一个词汇)

#

用[a-zA-Z0-9_-]限制名称字符,重写Url到Home/子目录下

#

test.eboat.cn

=>

web.eboat.cn/Home/test

RewriteCond

Host:

([a-zA-Z0-9_-]+)\.eboat\.cn

RewriteRule

^/(.*)

/Home/$1/$2

[I,L]

3.局限:免费版本仅对全局所有网站有效,付费版本可以单独放在某一个站点下影响局部

你RewriteRule ^(.*)/([a-z]*)/([a-z]*)/ $1/About.Asp?x=$2&y=$3 这里转化,需要about.asp 有x y连个参数的,你上面写法还是有哦问号存在的,我一般是这样写的

RewriteRule /NewsView-([0-9]*).html /NewsView.Asp?id=$1

asp伪静态化

安装说明:1、在IIS的Isapi上添加这个筛选器,筛选器名称 re,可执行文件选择 Rewrite.dll ;2、设置httpd.ini文件RewriteRule /news/(\d+)\.html /jsp/news\.jsp\?id=$1 [N,I]表示将news.asp?id=95 转换成news/95.html以此类推,如果你有更多的参数,则增加相应的(\d+),而后面的id=$1,则增加id=$2,等等。

目前较为普遍的动态网页包括asp,php,jsp,shtml,jhtml,cgi......甚至还有一些自己定义的,比如:aspx,do,index,hello 等等。表现形式为:news.asp?id=95。建议读者通过re_write将其转换成news/95.html,以便于google对改网页的识别。re_write是iis里的一个模块,当需要将news.asp?id=95的映射成news/95.html时,只需设置httpd.ini文件:RewriteRule /new

如果你在处理数据翻页,那么写法是:

More_<%=Page%>_<%=type%>.html (注:page是翻页页数,type是数据类型)

表现形式:More_1_95.html

如果翻下一页,则为:More_2_95.html,继续下一页的循环,则是:

More_3_95.html,以此类推。

不过你需要在httpd.ini文件中增加以下代码:

RewriteRule /More_(\d+)_(\d+)\.html /jsp/more\.jsp\?page=$1&type=$2 [N,I]

如果你的动态程序有多个参数需要传递,那么就增加多个(\d+)即可,如下:

RewriteRule /More_(\d+)_(\d+)_(\d+)\.html /jsp/more\.jsp\?page=$1&type=$2&type2=$3 [N,I]

翻页处理表现形式是:More_1_95.html


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/209339.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-04
下一篇2023-04-04

发表评论

登录后才能评论

评论列表(0条)

    保存