高分100 asp.net 如何实现伪静态,不需要设置IIS
如题,不需要设置IIS映射,纯代码实现,URLRewriter用过,Global.asax用过,但是均未实现,求帮助,高分,试验成功后再给100分,最好有源码!...
如题,不需要设置IIS映射,纯代码实现,URLRewriter用过,Global.asax用过,但是均未实现,求帮助,高分,试验成功后再给100分,最好有源码!
展开
展开全部
URLRewriter 添加到引用。然后 修改WEB.CONFIG如下:
<configuration>
<configSections>
<!--这一行定义用那个配置节点来实现url rewrite ,name 与下面的节点名一致-->
<section name="CustomConfiguration" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler,URLRewriter" />
</configSections>
<!--上面的节点名,内容为配置的规则-->
<CustomConfiguration>
<RewriterRule><!--重写规则,用户访问重写后的URL,如A.html 则实际跳转是重写前的URL,A.aspx-->
<LookFor>~/([^\.]+)\.html?</LookFor><!--重写后的URL,规则里可以写正则,()的内容在下面可以引用-->
<SendTo>~/$1.aspx</SendTo><!--重写前的URL,$1为上面第一个括号的值-->
</RewriterRule>
</CustomConfiguration>
<system.web>
<httpHandlers>
<!--添加url rewrite的Module,加了这个才处理URL 重写-->
<add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
</httpHandlers>
</system.web>
</configuration>
最后不知道你用的URLReWriter是哪个版本,我上面发的是 用重写前的url和重写后的url都能访问的方式。用的是
http://download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi
这个地址的URLReWriter
<configuration>
<configSections>
<!--这一行定义用那个配置节点来实现url rewrite ,name 与下面的节点名一致-->
<section name="CustomConfiguration" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler,URLRewriter" />
</configSections>
<!--上面的节点名,内容为配置的规则-->
<CustomConfiguration>
<RewriterRule><!--重写规则,用户访问重写后的URL,如A.html 则实际跳转是重写前的URL,A.aspx-->
<LookFor>~/([^\.]+)\.html?</LookFor><!--重写后的URL,规则里可以写正则,()的内容在下面可以引用-->
<SendTo>~/$1.aspx</SendTo><!--重写前的URL,$1为上面第一个括号的值-->
</RewriterRule>
</CustomConfiguration>
<system.web>
<httpHandlers>
<!--添加url rewrite的Module,加了这个才处理URL 重写-->
<add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
</httpHandlers>
</system.web>
</configuration>
最后不知道你用的URLReWriter是哪个版本,我上面发的是 用重写前的url和重写后的url都能访问的方式。用的是
http://download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi
这个地址的URLReWriter
更多追问追答
追问
请问你这个需要在IIS里设置html脚本映射么?
追答
不需要的
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家提供动态代理服务器服务的企业,旨在帮助用户更好地管理网络访问和安全。以下是一些关于StormProxies的IP动态代理服务的特点:1. 高匿名性:StormProxies的动态代理服务器具有高匿名性,可以有效...
点击进入详情页
本回答由Storm代理提供
展开全部
asp.net mvc架构就实现了静态化
更多追问追答
追问
哦哦,不用mvc你知道怎么做吗?
追答
webfrom 也可以用MVC的路由规则不知能不能解决这个问题,没研究过.
url重写:
如何进行URL重写?
我自己是这样写的(非常简单,仅一小段代码搞定,推荐):
首先,在你的网站根目录下新建Global.asax文件,找到Application_BeginRequest方法,(VS2005或者VS2008默认好像没有,自己添加),在该方法下添加如下代码即可:
string url = HttpContext.Current.Request.AppRelativeCurrentExecutionFilePath;//
获得要访问资源的虚拟路径,哪怕访问一个服务器上不存在的页面
Match mnc = Regex.Match(url, @"~/Page/NewsContent-(\d+)\.aspx");//将获取到的虚拟路径和自定义的路径进行匹配
if(mnc.Success)
{
string newsid = mnc.Groups[1].Value;//获取新闻id值
HttpContext.Current.RewritePath(@"~/Page
/NewsContent.aspx?newsid="+newsid);//匹配成功,直接利用当前上下文的RewritePath方法,将该虚拟路径
交由指定的路径处理,这样虽然页面显示“NewsContent-6.aspx”格式,但是实际上还是服务器处理的地址还是
NewsContent.aspx?newsid=6,仍然不影响新闻id的传送
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
基本上都用URLRewriter,怎么会实现不了?
下载URLRewriter.dll文件放入BIN文件夹中
然后正确配置web.config就可以了
下载URLRewriter.dll文件放入BIN文件夹中
然后正确配置web.config就可以了
追问
这个得设置IIS,实现我都实现了,采用了3种方式去实现,一个就是URLRewriter,一个Global,另外一种就是重写IHttpHandler,但是都不行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询