亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#中實現偽靜態頁面的方式

2024-09-07 17:05:39
字體:
來源:轉載
供稿:網友

你知道C#中如何實現偽靜態頁面嗎?今天小編將為大家介紹C#中實現偽靜態頁面的方式,其實這個功能并不難實現,主要還是要靠我們個人學習,現在我們就一起去看看吧。

第一種是在頁面global.asax中,相關代碼如下

?

復制代碼 代碼如下:

?


void Application_BeginRequest(object sender, EventArgs e)
{
HttpContext context = ((HttpApplication)sender).Context;
string oldurl = context.Request.Path.ToLower();
if ( ( oldurl.IndexOf("-") > 0 && oldurl.IndexOf(".") == -1) || (oldurl.IndexOf("-") > 0 && oldurl.IndexOf("aspx") > 0) )
{
string[] url = oldurl.Substring(oldurl.LastIndexOf("/") + 1).Replace(".aspx", "").Split('-');
string path = oldurl.Substring(0, oldurl.LastIndexOf("/") + 1);
//file
string file = url[0];
file = file.Replace("about", "detail");
file = file.Replace("news", "list");
file = file.Replace("down", "detail");
file = file.Replace("case", "album");
file = file.Replace("contact", "detail");
//query
string query = "";
for ( int i=1;i<url.Length;i++ )
{
if (url[i] != "")
{
switch (i)
{
case 1:
query += "id=" + url[i];
break;
case 2:
query += "&page=" + url[i];
break;
case 3:
query += "&key=" + url[i];
break;
case 4:
query += "&v1=" + url[i];
break;
case 5:
query += "&v2=" + url[i];
break;
case 6:
query += "&v3=" + url[i];
break;
case 7:
query += "&v4=" + url[i];
break;
case 8:
query += "&v5=" + url[i];
break;
case 9:
query += "&v6=" + url[i];
break;
case 10:
query += "&v7=" + url[i];
break;
}
}
}
//newurl
string newurl = path + file + ".aspx?" + query;
if( context.Request.ServerVariables["QUERY_STRING"] != null && context.Request.ServerVariables["QUERY_STRING"] != "" )
newurl += "&" + context.Request.ServerVariables["QUERY_STRING"];
//Response.Write(newurl);
context.RewritePath(newurl);
}


第二種方法是在HttpModule.cs中,代碼如下

?

復制代碼 代碼如下:

?


public class HttpModule : IHttpModule
{
private const RegexOptions regexOptions = RegexOptions.IgnoreCase | RegexOptions.Compiled;
private static readonly Regex regexFileName = new Regex(@".*?/([^./]*)/.aspx(.*)", regexOptions);
private static readonly Regex regexRewritePath = new Regex(@"^.*?/(/w*)(-?(/w+)-([/w,/|,%]+))+/.aspx", regexOptions);
public void Dispose()
{
}
public void Init(HttpApplication httpApplication)
{
httpApplication.BeginRequest += ReUrl_BeginRequest;
}
private static void ReUrl_BeginRequest(object sender, EventArgs e)
{
Globals.Catch(
() =>
{
var context = ((HttpApplication)sender).Context;
var request = context.Request;
var url = request.Url;
if (!VerifyUrl(url))
{
string input = url.PathAndQuery.ToLower();
//Loger.Debug("PathAndQuery-->" + input);
//Loger.Debug("AbsolutePath-->" + url.AbsolutePath);
//Loger.Debug("AbsoluteUri-->" + url.AbsoluteUri);
//Loger.Debug("DnsSafeHost-->" + url.DnsSafeHost);
//Loger.Debug("LocalPath-->" + url.LocalPath);
//Loger.Debug("AppDomain.CurrentDomain.BaseDirectory-->" + AppDomain.CurrentDomain.BaseDirectory);
//Loger.Debug("Globals.GlobalsVirtualFilePath-->" + Globals.GlobalsVirtualFilePath);
if (input.StartsWith(Globals.GlobalsVirtualFilePath))
input = input.Remove(0, Globals.GlobalsVirtualFilePath.Length);
string viewmode = Globals.ViewMode;
var themeName = request.QueryString["theme"] ?? "";
if (string.IsNullOrEmpty(themeName))
{
themeName = Globals.ThemeName;
}
if (input == "/")
input = "/index.aspx";
if (viewmode == "Rewrite")
{
Loger.Debug("now input-->" + input);
Match match = regexRewritePath.Match(input);
if (match.Success && match.Groups.Count == 5)
{
var captures3 = match.Groups[3].Captures;
var captures4 = match.Groups[4].Captures;
var itemCount = match.Groups[3].Captures.Count;
var list = new List<string>();
for (var i = 0; i < itemCount; i++)
{
list.Add(string.Concat(captures3[i].Value, "=", captures4[i].Value));
}
context.RewritePath(Globals.AspxFileUrl(themeName, match.Groups[1].Value + ".aspx?" + string.Join("&", list.ToArray())));
return;
}
}
var fileName = regexFileName.Match(request.Path.ToLower()).Groups[1].ToString();
if (string.IsNullOrEmpty(fileName))
return;
new ConvertTheme(context)
{
ThemeName = themeName,
ViewMode = viewmode
}.Display(fileName);
}
});
}
private static bool VerifyUrl(Uri uri)
{
var url = uri.AbsolutePath.ToLower();
if (url.StartsWith(Globals.GlobalsVirtualFilePath))
url = url.Remove(0, Globals.GlobalsVirtualFilePath.Length);
return uri.IsFile
|| url.IndexOf("site") != -1
|| url.IndexOf("sys") != -1
|| url.IndexOf("html") != -1
|| url.IndexOf("user") != -1
|| url.IndexOf("bbs") != -1
|| url.IndexOf("_module.aspx") != -1
|| url.IndexOf("webresource.axd") != -1
|| url.IndexOf("scriptresource.axd") != -1;
}
}

上文就是C#中實現偽靜態頁面的方式,現在偽靜態技術以及出現了,它帶動了于搜索引擎友好C#中實現偽靜態頁面有兩種方式。?

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品日日摸夜夜添夜夜av| 亚洲二区在线播放视频| 亚洲精品在线91| 日韩成人av一区| 欧美二区在线播放| 久久久久久国产精品| 91夜夜未满十八勿入爽爽影院| 国产成人精品免费久久久久| 国产一区二区在线免费| 欧美激情在线播放| 岛国av一区二区在线在线观看| 欧美三级欧美成人高清www| 精品亚洲aⅴ在线观看| 欧美国产中文字幕| 91欧美精品成人综合在线观看| 亚洲精品不卡在线| 欧美国产日韩精品| 日韩高清电影免费观看完整| 成人欧美一区二区三区在线| 久久精品国产一区二区三区| 日韩免费在线电影| 色婷婷综合成人av| 亚洲最大福利网| 亚洲欧美日韩一区二区在线| 91久久国产精品91久久性色| www.亚洲男人天堂| 欧美国产亚洲视频| 亚洲黄色av女优在线观看| 日韩中文字幕欧美| 久久成人免费视频| 国产精品久久久久aaaa九色| 国产精品久久激情| 国产有码在线一区二区视频| 欧美日本在线视频中文字字幕| 欧美高清视频在线播放| 中文字幕少妇一区二区三区| 国产精品99久久99久久久二8| 亚洲精品国产综合久久| 九九九久久久久久| 欧美一区二区三区图| 久久久亚洲国产天美传媒修理工| 国模私拍一区二区三区| 激情av一区二区| 亚洲第一福利在线观看| 国内精品模特av私拍在线观看| 亚洲自拍偷拍一区| 国产99视频精品免视看7| 久久免费视频在线观看| 国产亚洲精品美女久久久久| 欧美日韩国产激情| 久久夜色撩人精品| 国色天香2019中文字幕在线观看| 欧美人交a欧美精品| 久久久久免费视频| 狠狠综合久久av一区二区小说| 亚洲精品在线看| 日韩亚洲精品电影| 大伊人狠狠躁夜夜躁av一区| 97成人精品视频在线观看| 一级做a爰片久久毛片美女图片| 国产精品视频免费在线观看| 久久精品成人一区二区三区| 亚洲欧美日韩在线一区| 欧美激情videoshd| 在线观看视频亚洲| 亚洲a级在线播放观看| 中文字幕欧美精品日韩中文字幕| 国产成人精品av| www.99久久热国产日韩欧美.com| 久久久精品999| 日韩av电影免费观看高清| 亚洲男人的天堂在线| 欧美成人免费视频| 欧美肥老妇视频| 欧美亚洲日本网站| 国产日韩中文在线| 欧美自拍视频在线观看| 久久久久久久色| 国产日韩精品一区二区| 国产成人亚洲综合91| 亚洲性69xxxbbb| 国产999精品久久久| 欧美一级片免费在线| 国产精品2018| 亚洲成人av片| 日韩av免费看网站| 亚洲精品v天堂中文字幕| 欧美黑人xxxⅹ高潮交| 国产亚洲人成a一在线v站| 精品亚洲一区二区三区在线观看| 欧美精品videossex88| 97碰在线观看| 精品国产福利在线| 亚洲japanese制服美女| 欧美xxxx做受欧美| 精品福利樱桃av导航| 亚洲第一免费网站| 久久夜色精品国产| 成人免费网站在线| 91免费的视频在线播放| 66m—66摸成人免费视频| 国产成人一区二区在线| 中文字幕少妇一区二区三区| 国产欧美日韩丝袜精品一区| 51ⅴ精品国产91久久久久久| 成人精品视频99在线观看免费| 91国产中文字幕| 岛国av一区二区三区| 欧美精品videos性欧美| 国产免费亚洲高清| 一区二区亚洲欧洲国产日韩| 97精品久久久中文字幕免费| 这里只有精品视频| 欧美激情视频在线免费观看 欧美视频免费一| 成人黄色av播放免费| 92看片淫黄大片欧美看国产片| 欧美电影免费观看大全| 日韩免费观看高清| 日韩成人网免费视频| 亚洲最大福利视频网| 亚洲а∨天堂久久精品9966| 国产+人+亚洲| 最近2019中文字幕大全第二页| 欧美午夜激情小视频| 欧美午夜性色大片在线观看| 最近2019年中文视频免费在线观看| 亚洲欧美三级在线| 一本色道久久88亚洲综合88| 欧美猛交免费看| 亚洲精品一区av在线播放| 久热精品视频在线观看| 欧美激情精品久久久久久免费印度| 日韩暖暖在线视频| 欧美精品18videosex性欧美| 日韩成人在线视频| 欧美日韩在线视频首页| 中文字幕免费精品一区高清| 欧美日韩一区二区免费在线观看| 欧美性高潮床叫视频| 亚洲欧美国产日韩天堂区| 一道本无吗dⅴd在线播放一区| 精品二区三区线观看| 国产精品视频久久| 亚洲精品电影网在线观看| 亚洲国产精品高清久久久| 亚洲91av视频| 亚洲一区二区久久久久久久| 不卡毛片在线看| 亚洲区一区二区| 在线观看国产精品淫| 91在线播放国产| 国产va免费精品高清在线观看| 国产精品久久久一区| 国产精品午夜一区二区欲梦| 欧美在线视频免费观看| 精品久久久久久久中文字幕| 91久久精品国产91久久性色| 亚洲第一福利网| 亚洲一区精品电影| 成人日韩在线电影| 久热99视频在线观看| 97精品久久久中文字幕免费| 久久精品视频免费播放| 日韩在线资源网|