当前位置:编程学习 > C#/ASP.NET >>

asp.net里面的伪静态怎么做的

用谁知道asp.net里面的伪静态怎么做的,要详细的方法 --------------------编程问答-------------------- 伪静态实现 --------------------编程问答-------------------- 你怎么回答就几个字啊,他伪静态实现是蛮复杂的好不好,不是几个字就可以的
--------------------编程问答-------------------- ...2楼是发链接地址 不是就那么几个字...
伪静态现在网上例子很多 自己搜索一些
流程就是 引用一个urlwrite.dll文件 然后web.config配置映射路径地址就可以了 
很简单的 IIS发布时添加映射 就OK了 --------------------编程问答-------------------- 1.添加 URLRewriter.dll
2.webconfig中配置 

<configSections>
        <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter"/>
    </configSections>

 <httpModules>
            <add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter"/>
        </httpModules>

//映射
</configSections>
    <RewriterConfig>
        <Rules>
            <RewriterRule>
                <LookFor>~/url.aspx</LookFor>
                <SendTo>~/default.aspx</SendTo>
            </RewriterRule>
            <RewriterRule>
                <LookFor>~/url/</LookFor>
                <SendTo>~/default.aspx</SendTo>
            </RewriterRule>
            <RewriterRule>
                <LookFor>~/url.html</LookFor>
                <SendTo>~/default.aspx</SendTo>
            </RewriterRule>
            <RewriterRule>
                <LookFor>~/(.*)/(.*)/default.aspx</LookFor>
                <SendTo>~/default.aspx?page=$1&type=$2</SendTo>
            </RewriterRule>
        </Rules>
    </RewriterConfig>

3.页面根据相应重写规则就可以访问对应页面了. --------------------编程问答--------------------
引用 2 楼 qianlili345 的回复:
你怎么回答就几个字啊,他伪静态实现是蛮复杂的好不好,不是几个字就可以的

--------------------编程问答--------------------
引用 2 楼 qianlili345 的回复:
你怎么回答就几个字啊,他伪静态实现是蛮复杂的好不好,不是几个字就可以的


那几个字是链接。。。。大哥别这么幽默。。。 --------------------编程问答--------------------
asp.net实现伪静态
ASP.NET伪静态的实现及伪静态的意义

--------------------编程问答-------------------- 呵呵,我一开始没有看出来 --------------------编程问答-------------------- 子夜哭了。
引用 5 楼 wxr0323 的回复:
引用 2 楼 qianlili345 的回复:

你怎么回答就几个字啊,他伪静态实现是蛮复杂的好不好,不是几个字就可以的
--------------------编程问答-------------------- url 重写 正解 --------------------编程问答-------------------- 我要使用 HTTP 模块执行 URL 重写 --------------------编程问答-------------------- 谁知道的呢
--------------------编程问答-------------------- 我要使用 HTTP 模块执行 URL 重写,也就是我们说的伪静态,想要模拟的详细代码 --------------------编程问答-------------------- 这里字数多点这里字数多点这里字数多点这里字数多点这里字数多点这里字数多点这里字数多点这里字数多点这里字数多点这里字数多点这里字数多点这里字数多点这里字数多点这里字数多点这里字数多点这里字数多点 --------------------编程问答-------------------- 用MVC吧,在Route中可以非常方便的添加规则,可以实现地址目录化,也可以很方便的改变文件后缀
--------------------编程问答-------------------- Route吧,貌似WEBFORM也可以用的 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 16 楼  的回复:
Route吧,貌似WEBFORM也可以用的

没错。
部署 一个Global.asax,再在web.config里配置一下

这是我的例子:
[C#]
     public class Global : System.Web.HttpApplication
    {
       //.....
       protected void Application_BeginRequest(object sender, EventArgs e)
        {
            string originalPath = Context.Request.Path.ToLower();
            if (Regex.IsMatch(originalPath, ".htm\\b") &&
                (RewriteUrl(originalPath, "news")
                || RewriteUrl(originalPath, "gallery")
                || RewriteUrl(originalPath, "special")
                || RewriteUrl(originalPath, "shop")
                || RewriteUrl(originalPath, "albumcenter")
                || RewriteUrl(originalPath, "newscenter")
                || RewriteUrl(originalPath, "guestbook")
                || RewriteUrl(originalPath, "shopdetails")
                ))
            {
            }
        }

        bool RewriteUrl(string originalPath, string name)
        {
            Regex reg = new Regex(name + "(_(?<id>\\d+))?(_p(?<page>\\d+))?.htm");
            var matchs = reg.Matches(originalPath);
            int id = 0;
            int page = 0;
            if (matchs.Count <= 0) return false;

            page = CommOp.ToInt(matchs[0].Groups["page"].Value);
            id = CommOp.ToInt(matchs[0].Groups["id"].Value);
            string request = "";
            if (id > 0 && page > 0)
            {
                request = "?Id=" + id + "&Page=" + page;
            }
            else if (id > 0)
            {
                request = "?Id=" + id;
            }
            else if (page > 0)
            {
                request += "?Page=" + page;
            }

            string newPath = reg.Replace(originalPath, name + ".aspx" + request);

            Context.RewritePath(newPath);
            return true;
        }
         ....
[/C#]
这是我在做www.aij1.com中的实际应用。 --------------------编程问答--------------------
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,