http://www.mangguo.org/10-mod_rewrite-rule-you-should-know/ Mod_rewrite 是一个基于 Apache 服务器的动态 URL 重写引擎。Apache 服务器已本地集成了该模块,但默认情况下不启用。 它能够超越简单的重写功能,以下其中的一些实用技巧。 开启 Mod_Rewrite 模块 Mod_rewrite 模块通过 .htaccess 文件使用。粘贴以下代码至 .htaccess 文件头部,以开启 mod_rewrite 模块: RewriteEngine on 谨记,.htaccess 文件命令是区分大小写的。要使用 mod_rewrite 模块,此代码必须在 .htaccess 文件的开头输入。 基本 Mod_Rewrite 布局 mod_rewrite 命令的基本格式为: RewriteRule Pattern Substitution [Flag(s)] URL 地址是相对的 您所要重定向的 URL 地址是相对于当前 .htaccess 所在目录而言的。因此如果 .htaccess 存放于根目录,URL 地址均涉及并相对于根目录;如果 .htaccess 存放于子目录,URL 地址涉及并相对于特定的子目录。 基本重定向 如果只是想创建简单的从一个 URL 地址到另一个 URL 地址的 301 重定向,可以使用以下代码: RewriteRule ^fileone.html$ filetwo.html 这是一个非常基本的规则,意味着任何来自 fileone.html 的请求将被引导至 filetwo.html 文件。 关于 301 重定向请详细参考:使用 .htaccess 实现 301 域名重定向 省略 “www” 前缀 这段代码将允许访客不需要输入 “www” 前缀即可正确访问网站。 RewriteCond %{HTTP_HOST} !

繼續閱讀

http://blog.gslin.org/page/2/ 這篇是因為在 PIXNET 內講了 n 次,決定寫成文字,至少之後新人進來可以說「就看這篇」,避免整套系統都需要重新講一次。 對了,補充一下,PIXNET 還是有缺人,參考「缺人找人」這篇的內容,如果有想問的細節,可以寫信問我。 資料庫 在 RDBMS 提供了很多而且很豐富的操作方式,但當資料量愈來愈大時,會遇到單台機器的網路頻寬有限以及空間有限。這時候一定得走向多台的架構。 Replication 最容易解決的情況是「讀取的 query 比寫入的 query 多」,可以用 database replication 解決,這也是 Web 1.0 網站常見的解法之一 (另外一種常見的解法是使用靜態檔案,或是 reverse proxy cache),同步將資料複製到多台。 Memcached 接下來會發現當 slave 過多時會造成每台記憶體內重複 cache 相同的元素,也就是說,有二十台 slave,每台都有 SELECT * FROM user WHERE name = ‘gslin’ 的結果其實很浪費資源。不過這個問題可以用memcached 或是 hash selection 解決。 Sharding 在 Web 2.0 的環境裡,User generated content 成為主流,當寫入的 query 超過單台可以負荷的量時,replication 的架構就不是很適合了,因為每個寫入的 query 在其他台 slave 上也會被執行。在商用資料庫的領域通常是使用 cluster 架構,在 open source 領域的 MySQL cluster 也是 cluster-based solution,不過用的單位還不是很多,而且 overhead 還蠻重的。 比較常見的解法是 sharding:依照 id,把資料拆散到各台。像是 Flickr 就是這樣使用。 但 sharding 就會少了很多 RDBMS 可以用的特性 (JOIN 與 transaction),在寫 application server 或是 library 的時候得花功夫多下幾次 query,並且注意資料的正確性。 上面這些方法在 2005 年 Brad Fitzpatrick (LiveJournal founder、memcached 作者) 的投影片「LiveJournal’s Backend: A history of scaling」都有提到。 Sharding 是一個解法,但有不少缺點: 需要 application server 或是 library,否則 3rd party 程式得清楚知道 sharding 的架構,才會知道資料要到哪個 cluster 找。 無法隨意使用 JOIN 及 transaction。如果真的要 JOIN,設計時要想辦法把需要 JOIN 的資料放在同一台 database server。如果要跨機器 transaction 得透過 2PC 甚至 3PC (看需求),或是類似的 distributed transaction protocol,效能會比起同一台機器差很多。 設計 schema 時必須注意當一個 cluster 愈來愈大時要 rebalance,或是更進一步,在一開始設計時就考慮到資料搬移的問題。 Key-Value Database 後來就有不少人注意到,Web 2.

繼續閱讀

Datatable jquery

Datatables jquery 最近剛好在利用,因為server-side用php,改寫成asp 底下是參考的code '*** 底下為server-side SQL處理 ***** 'sql變數儲存的為原本sql語法 sql = "select xxx from xxx" if not isnull( Request.QueryString("iSortCol_0")) then sOrder = "ORDER BY " for i=0 to Request.QueryString("iSortingCols" ) - 1 sOrder = sOrder & fnColumnToField(Request.QueryString("iSortCol_" & i) ) & " " & Request.QueryString("iSortDir_" & i)) & ", " next sOrder = left( sOrder, len(sOrder) - 2 ) end if '/* Filtering - NOTE this does not match the built-in DataTables filtering which does it ' * word by word on any field.

繼續閱讀

測試網頁工具

附上三套測試網頁工具,從外國連線測試,最準啦! 以 http://www.mjj.hk/ 為例 http://tools.pingdom.com 測試結果10 seconds載完,104檔圖……太多了吧! http://webwait.com 讀10次網站 平均1.5秒 http://loadimpact.com 這個最暴力,最浪費時間,以10 clients 11.7s

繼續閱讀

作者的圖片

Sue boy

Sueboy Can support You

CIO

Taiwan