LENDIEN聯電 冷暖 清淨 除溼 移動式空調 9000BTU任天堂-Switch-NS-公司貨主機-豪華全配組LG樂金 WIFI遠控雙眼小精靈掃地清潔機器人變頻版
顯示具有 linux 標籤的文章。 顯示所有文章
顯示具有 linux 標籤的文章。 顯示所有文章

2011年4月13日 星期三

apache轉址:RedirectMatch跟RewriteRule

前幾天找了一下apache轉址的方法,一開始找到RedirectMatch
使用方式很簡單,改httpd.conf,把要改的那個VirtualHost tag裡加上RedirectMatch 規則 目的就好了
像是固定要把/12345/abcde轉到/my.php?i=12345&n=abcde
設定裡就要下RedirectMatch ^/(\d{5})/([a-z]{5,10}) /my.php?i=$1&n=$2
規則可以用標準表示式設定,小括是重點,影嚮到後面$1,$2的使用,前面有括後面才能用$n的方式叫回來

改好後重新啟動apache服務就行了,很順利的一次搞定。

可是後來發現用這種方式導過去後,頁面上方的網址會是my.php?i=xxooxxoo這樣,不美麗
後來又找到RewriteRule,使用上跟RedirectMatch很相似,但是用法更靈活,只要把上面的RedirectMatch改成RewriteRule,然後在這一行的上面加一條Rewriteengine on,一樣重啟apache後基本上就可以了
用這種方式導到正確頁面後,網址不會被改掉,相當完美相當滿意

但是!!Rewrite要注意的是,因為網址不會被改掉,所以有時候會發生頁面上有些圖片、css、javascript、超連結等呼喚其他檔案的地方都中邪貌失效了,原因就是本來程式裡用相對路徑的寫法這時候會找不到啊!所以如果一開始沒用絕對路徑,這時候改起來就會很痛苦

雖然很開心的找到我要的rewriterule,不過我終究因為上面說的「改起來很痛苦」而改回redirectmatch……對於rewriterule的語法就沒有再深入去研究了,有興趣的人可以看看rewriterule的介紹

2011年1月20日 星期四

linux maillog停止更新

這兩天同事在弄postfix弄不好,問我一些問題,可是……我跟postfix也不熟啊XDDDD
不過呢,凡事有問題查log就對了,結果一查,耶??log最後更新日是去年9月3日,而且size長到一個相當嚇人的程度,於是著手先處理log的問題,一開始以為是logrotate有問題,但是看他的設定檔跟別的server上的設定檔一樣,所以又去看了一下syslog的設定
結果,竟然真的是被改成不記錄了,是哪個傢伙,幹麻惡整別人啊!!!
處理方式是這樣的:
開啟/etc/syslog.conf,裡面會有一堆什麼的log記在哪個檔的對應表,像這樣
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
authpriv.*                                              /var/log/secure

mail.*                                                  /var/log/maillog

我一進這個設定檔的時候,mail.*那行後面變成「- /var/log/maillog」
把「-」刪掉存檔,然後種啟syslog,一切正常

有log好辦事,後來從log上的資訊得到postfix那邊遇到的問題,其實是在DNS端設定有誤造成的,DNS改好沒兩三下,問題就解決了。至於DNS是誰設的……就是部門主管。

2010年6月24日 星期四

移除apache預設語系

最近遇到放在同一server上的多個網中,要把其中一個網站改成utf-8編碼,其他繼續用big5編碼時,utf-8的網頁全部改好編碼,也改好head資訊了,結果開啟網頁的時候,瀏覽器一樣是選big5編碼,就算用自動選取也是不跳utf-8。
後來發現原來是那台server的apache版本較舊,有設定預設語系,現在新版apache大多預設不設定預設語系了。
把預設語系移掉方法:
1.修改httpd.con設定檔,路徑一般是在/etc/httpd/conf裡
2.找到"AddDefaultCharset",在這行前面加# mark起來
3.重新啟動httpd服務:執行/etc/rc.d/init.d/httpd restart,成功重啟後再確認一下各網站運作正常就ok了