客戶做一個網站,這個網站還要優化,也是我們公司做,爲了方便優化人員更好的,更快的讓搜索引擎收錄該網站,要不生成全站靜態,要不就是寫成僞靜態,對於我一個新人來說,全站生成靜態還沒接觸過,僞靜態也沒弄過。通過拜讀網上各位大神的傑作,慢慢的對這些有了一定了解。生成全站靜態,確實好,都說會佔資源,還對硬盤損害大,那我就專注於僞靜態了。
通過請教一些高人,還有網上的資料,發現了僞靜態的多種實現方法,不過都需要配置iis。通過高人的指點,自己感覺把正則寫在Global.asax文件裏還是比較舒服的,這樣不用添加UrlRewrite組件,只用在iis中添加一個映射到.html的aspnet_isapi.dll就可以了,還是比較方便的。好了,閒話不多說,看看代碼吧。
這裏只是個人的一些方法,肯定還有許多好的方法來實現,希望大家都來發表一下自己的想法,共同學習一下。
首先建立一個解決方案,名稱隨意 ,根據個人愛好。這裏是我做的測試。
然後新建兩個.aspx文件,名稱比如a.aspx,b.aspx。
然後在Global.asax文件中添加以下代碼
[csharp]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;
using System.Text.RegularExpressions;
namespace URLReWrite1
{
public class Global : System.Web.HttpApplication
{
void Application_Start(object sender, EventArgs e)
{
// 在應用程序啓動時運行的代碼
}
void Application_End(object sender, EventArgs e)
{
// 在應用程序關閉時運行的代碼
}
void Application_Error(object sender, EventArgs e)
{
// 在出現未處理的錯誤時運行的代碼
}
protected void Application_BeginRequest(Object sender, EventArgs e)
{
Regex reg = new Regex(".+b-(\\d+)-(\\d+).html");
var macth = reg.Match(HttpContext.Current.Request.Url.AbsolutePath);
if (macth.Success)
{
String uid = macth.Groups[1].Value;
String spid = macth.Groups[2].Value;
HttpContext.Current.RewritePath(String.Format("b.aspx?uid={0}&spid={1}", uid, spid));
}
}
void Session_Start(object sender, EventArgs e)
{
// 在新會話啓動時運行的代碼
}
void Session_End(object sender, EventArgs e)
{
// 在會話結束時運行的代碼。
// 注意: 只有在 Web.config 文件中的 sessionstate 模式設置爲
// InProc 時,纔會引發 Session_End 事件。如果會話模式設置爲 StateServer
// 或 SQLServer,則不會引發該事件。
}
}
}
然後在a.aspx文件里加一個超鏈接
[csharp]
<span style="font-size:18px;"> <h3><a href="b-123-111.html">測試</a></h3></span>
好了,接下來就是需要配置一下iis了,爲你的網站添加一個應用程序擴展名爲.aspx。路徑爲C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll。
然後再添加一個擴展爲.html,路徑還是這個C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll。
還有版本要選擇正確,這樣就可以了,瀏覽剛纔的測試網站,點擊測試,跳轉了。此時的url顯示的是b-123-111.html。www.super888.net
這樣就實現了簡單的僞靜態。希望大家多來指導,怎麼添加一個虛擬目錄。就是這個目錄不存在,想要顯示在url中,比如顯示成a/b-123-111.html。期待學習大家的想法。