2008年5月14日 星期三

[野人獻曝]Apache上的Mod_rewrite的實作說明(中-1)

在前篇文章,我拿了Cakephp的rewrite規則來作一些基本的說明,
因此在接下來幾篇文章中,會針對幾個情境來試著實作,
請各位看看吧,如果有錯的地方也請多多指教!

案例一:

某案主:我的網站是用PHP寫成的,因此我的網站都會有像這樣的網址:
http://xxx.com/index.php

可是我不想讓別人知道這個網站是用php的,
所以我想要把.php改成.do(通常是用java之類的網頁),
(像是http://xxx.com/index.do)
當然啦,如果你能把.php除掉的話也可以啦!
(像是http://xxx.com/index)


針對某案主的要求,
我們可以先擬出以下基本的rewrite規則:

1<IfModule mod_rewrite.c>
2 RewriteEngine On
3
4 RewriteRule ([a-zA-Z0-9_]*).do $1.php [L]
5</IfModule>
(以上內容要儲存在.htaccess檔案中)

這樣當訪客輸入http://xxx.com/index.do時,
Apache會導向index.php。

這裡解釋一下第四行的內容,
該行內容是指:

當看到符合使用英文大小寫字母、數字和底線的.do時,即指定給該檔名的.php檔處理


這是最基本的狀況,
萬一某業主手賤替某個檔取了ad@google.php時又該怎麼辦?
你可以在這行([a-zA-Z0-9_]*)的粗體字後加上一個@,
如果有新狀況的話,就依此類推地給它加下去!
但是請注意,某些字碼如&、<、>等,
因為是需要進行HTML脫逸或是正規式的表示字元,
在使用上可能會有問題,使用前請務必小心,
當然啦,替檔案命名時絕對不要用這些字元會是最好的方法。

2008年5月13日 星期二

[耍笨]mktime的參數順序

話說今天正在寫一個月曆,
由於我壓根沒寫過這東西(注1),
所以在我稍微Google一下前輩們的思考邏輯後,
就開始寫Code了!

基本上整隻程式使用mktime和date函數來處理,
但笨點救出在這裡了。

大概花了一些時間寫完code後,
測試時竟然老是跑出錯誤的結果,
整隻程式從頭到尾看過一遍後,
還是找不到問題在哪!
後來才不小心地發現我的mktime函數內的參數給錯了Orz......

mktime的參數依順序分別是(時,分,秒,月,日,年),
請大家在使用mktime時要多加小心!

按:
雖然mktime的參數順序是時,分,秒,月,日,年
可是我老是會寫成年,月,日,時,分,秒
而且一直改不過來!
大概未來得讓自己習慣才行。

注1:
雖然說月曆這東西很簡單,
但是我一直覺得這東西很麻煩,
所以要用到月曆時,都是直接拿別人寫好的來套用。
自然就變成今天才寫生平中的第一次月曆!