url重寫是擷取傳入web 請求並自動將請求重定向到其他 url 的過程。
比如:瀏覽器發來請求 http://localhost:90/urlrewriter/1.html ,
伺服器自動將這個請求中定向為http://localhost:90/urlrewriter/url.aspx?id=1
一、url重寫
專案引用urlrewriter.dll
web.config配置:
** <?xml version="1.0"?>
~/urlrewriter/(.[0-9]*)\.html
~/urlrewriter/url.aspx?id=$1
~/web
~/urlrewriter/url.aspx
iis配置:
**--屬性--主目錄--配置--插入--c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll
將檔案是否存在 勾去掉
二、處理postback回發
actionlessform.dll以重寫form的方式用於處理postback回發後url變為原始位址
專案引用actionlessform.dll在頁面中註冊一下
<%@ register tagprefix="skm" namespace="actionlessform" assembly="actionlessform" %>
將頁面中的替換成:
注:以這種方式處理回發將會在設計器中檢視的時候為錯誤提示form不可用
所以採用以下方法處理:
在微軟的urlrewriter類庫中新增以下類之後編譯
** using system;
using system.data;
using system.configuration;
using system.web;
using system.web.security;
using system.web.ui;
using system.web.ui.webcontrols;
using system.web.ui.webcontrols.webparts;
using system.web.ui.htmlcontrols;
///
/// formrewriter 的摘要說明
///
namespace urlrewriter.form
protected override void render(htmltextwriter writer)
}public class rewriteformhtmltextwriter : htmltextwriter
public rewriteformhtmltextwriter(system.io.textwriter writer)
: base(writer)
public override void writeattribute(string name, string value, bool fencode)
}base.writeattribute(name, value, fencode);}}
}**
這樣就不需要引用actionlessform.dll也不需要改變form了,只要引用urlrewriter.dll就可以了
三、在處理重寫成html的時候本來**中的html頁面將會不能使用
使用以上方式將不存在找個問題
如果還不行可以在節點下新增
在節點下新增(如果之前使用的是http處理程式執行重寫的,請寫在前面)
discuzX3 2 URL靜態化處理
1 進入discuz後台,選擇 全域性 seo優化 2 檢視當前urlrewrite規則,選擇你相應的伺服器url重寫規則,複製到當前專案下的.htaccess檔案中,儲存,更新快取 3 重新重新整理頁面,如果報404錯誤,這時候檢視httpd.conf配置是否有問題注 我這邊是linux,wind...
js php字元及url的處理
js對文字進行編碼涉及3個函式 escape,encodeuri,encodeuricomponent,相應3個解碼函式 unescape,decodeuri,decodeuricomponent 1 傳遞引數時需要使用encodeuricomponent,這樣組合的url才不會被 等特殊字元截斷。...
python異常處理及Url編碼
url編碼 import traceback import urllib.parse s besttest 自動化測試 print urllib.parse.quote s url編碼 print urllib.parse.quote plus s url編碼,src print urllib.pa...