asp.net实现伪静态遇到的问题

之前在一次项目(asp.net网站)中要用到伪静态技术,实现的思路大致是这样的:

在全局配置文件Global.asax(普通的类可以通过实现IHttpModule来完成)中的Application_BeginRequest方法中通过正则表达式表达式来进行url重写

//get url

string url = HttpContext.Current.Request.AppRelativeCurrentExecutionFilePath;

//if match success

HttpContext.Current.RewritePath("the real url");

同过上面的步骤基本可以在本地测试的时候完成伪静态,(如果是本地iis需要对iis进行相应的配置),但是要上传到外网服务器空间,就同样要修改相应的配置,那么问题来了,学挖掘机哪家强?不好意思笔误,别人的iis怎么可能让你随便改呢?在尝试了很久后发现其实是可以通过web.config来实现(可能是我水平有限啊,不解释),可以在配置文件中加上如下配置

<system.webServer>

<staticContent>

            <mimeMap fileExtension=".shtml" mimeType="text/html" /><!--the used extension is shtml-->

        </staticContent>

        <handlers>

            <add name="shtml" path="*.shtml" verb="GET,POST" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" preCondition="classicMode,runtimeVersionv2.0,bitness32" />

        </handlers>

</system.webServer>

。。。不知道有木有其他问题,但是这样确实是解决了我遇到的问题

除了可以以上方法实现url重写外还可以通过微软提供的使用微软URLRewriter实现(

如果用html来做后缀的话可能回遇到真正的html页面不能访问,解决方法也是改配置文件

),详细方法我就不多写了,给出我收藏的相关链接

http://www.cnblogs.com/Ferry/archive/2009/06/19/1506770.html

http://www.cnblogs.com/shuang121/archive/2012/09/07/2674687.html

你可能感兴趣的:(asp.net)