url靜態對映及回發處理

2021-08-30 19:04:38 字數 1782 閱讀 2702

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...