IIS 的 URL Rewrite 使用: 規則運算式


假設請求網址為 http://www.domain.com.tw/dir/search.aspx?user=sean

這算是自己的筆記吧! IIS 的 URL Rewrite 很好用,但想設定的人可能一頭霧水。Regular Expression 的 Pattern 是要從 http:// 開始、或是 www. 開始、或是 /dir 或 dir 都沒有說明, 每次都會忘記,所以自己做個筆記。址尾是否包含 Query String 也沒說明。


結論:

● 「模式:」填寫 Regular Expression Pattern,此例「^dir/search\.aspx$」是符合的。

● 「重寫 URL:」用 {R:1} ~ 9 當回溯值(Back-reference; 也就是 RegExp 中的括弧順序)。

● 勾「附加查詢字串」會把「?user=sean」加到「重寫 URL」尾端。

讓 YUI DataTable 使用 JSON Data Over XHR 時支援中文 field

原由

YUI 真是個好東西,最近拿它來寫公司的程式。
天殺的! 不知以前是誰把資料庫欄位都用中文命名。
我輸出 JSON 長這樣...


{
 "ResultSet": {
  "Result": [{
   "ID": "1234",
   "姓名": "林洵賢",
   "電話": "1234567890"

... 省略

話說當今瀏覽器 UTF8 編碼的頁面 JavaScript 運作起來是沒什麼問題。
但 YUI 是外國人設計的,用它的 DataSource 抓資料後認為這些以中文為 key 的是壞東西會自動被忽略。


解決

追程式囉! 我原本是用 DataTable 當然從它開始追,追到另一個模組 DataSource 找到了!
我用的是 YUI 2.9 版,修改 \build\datasource\datasource*.js 原始程式,把

[^\w\.\$@]

改成

[^\w\.\$@\u4e00-\u9fa5]

就支援中文 key 了。


或許這篇算是寫給自己的筆記,沒接觸過的應該看沒有。
如果你不幸也在找同樣的解決方案 google 到我,那恭喜你囉,留個言吧!


後記
後來發現欄位排序中文Key也有問題,要修改 datatable*.js 尋找 [^\w\-] 改為 [^\w\-\u4e00-\u9fa5] 即可。