Author: Kirin Lin

  • 固定網址結構更新

    WordPress 有個「自訂固定網址結構」的功能,當初因它處理中文文章代稱時問題很大,就使用自訂結構如下:

    /%year%_%monthnum%/%day%/%post_id%

    就這麼相安無事用了很久,不過人總是得求新求變咪!想換一下…其實是因為 WordPress.com 統計外掛會把底線(_)給去掉…Orz 於是,就把它改成新的自訂結構:

    /%year%/%monthnum%/%day%/%post_id%

    不過問題出現,那存在搜尋引擎與書籤網站還有其他人的瀏覽器連結怎麼辦?改了就會有 404 – Not Found 出現啊~Orz

    經過好一段嚐試錯誤,終於找到解法。但這方法只適用於 Kirin 的狀況,您的固定網址結構根本站不同的請勿使用歐!只要在 .htaccess 中的 #BEGIN WordPress 那行前面加上下面這段:

    # BEGIN Old Rewrite
    
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([0-9]{4})_([0-9]{1,2})/(.*)$ $1/$2/$3 [R=301,QSA,L]
    
    # END Old Rewrite
    
  • 網誌升級至 WordPress 2.3

    花了將近一小時升級,步驟跟上次升級差不多,但是沒有很認真備份…XD

    Apache 怪怪的,主機特別慢,關也關不掉,所以直接整台重開,大概是上次暈到死自動升級後沒重開的後遺症。

    總之,Kirin 所使用的外掛只有 Live Space Sync 1.0 不相容。因為它後台有個選分類的相關設定,直接使用 SQL 去撈資料庫。您也知道,這次 2.3 改變最大以至於讓一堆外掛死翹翹的就是分類…

    稍微修改一下,看起來是可以用,回報給 priv 看看。改法:

    $categories = (array) get_categories('get=all');
  • Secure Site

    由於部門網站僅供內部使用,而我們面對的客戶又是國際大廠。所以,大家在上面所討論的東西或者資訊,不可避免地會觸及客戶資料。為了安全起見,整個網站使用 HTTPS 是必要的作法,直接把所有 HTTP request 用 Rewrite 轉給 HTTPS。

    除了將 anonymous user 取消所有權限外,另外也啟用 Secure Site 模組,加上使用瀏覽器輸入帳號密碼的 Basic Authentication 方式。

    不過這模組有個小 bug,啟用之後會影響到 cron 的執行。仔細觀察 securesite.module 後發現,它其實有處理 cron bypass。那…為什麼會有問題?因為我在 setting.php 裡面對 $base_url 做了設定,結果就產生錯誤。

    回頭去翻 CVS messages,又發現舊的方法反而比較對:

      // bypass cron.php
      if (!$securesite_enabled || strstr(request_uri(),'cron.php')) {
        return;
      }

    於是手動改掉,並且回報給開發人員,靜待回音。

    更新
    又重新思考一下為什麼開發者會放掉這個方式?很簡單,若是有人使用 http://example.com:88/drupal/whatever?cron.php 類似的 URL 就可以通過該檢查。那,我們從 $base_url 下手如何?

      // bypass cron.php
      $cron_uri = preg_replace('/^(http|https):\/\/[\d\w.:-]*/i','',$base_url.'/cron.php');
      if (!$securesite_enabled || request_uri() == $cron_uri) {
        return;
      }

    改成這樣,就可以取得 $cron_uri 啦!不知道對不對齁?

    更新
    不知道為什麼 mail new password 的功能有問題,造成新密碼無法使用,只好將它停用。

  • SMTP Authentication Support

    最近架了一個部門網站,使用很有名的內容管理平台 Drupal。同 WordPress 一樣,它的設計就是很容易擴展功能,有許多模組因應不同的需求被開發出來。當我們想要某個功能的時候,就去找找有沒有人已經開發好,裝上去設定一下即可。

    作業系統使用 CentOS 5,就是 Red Hat Enterprise Linux(RHEL) 的社群再編譯版本。Apache, PHP, MySQL 設定好,Drupal 裝好就可以開使用。

    不過,由於基於管理上面的方便,並沒有安裝 Sendmail or  Postfix 等 mail server,帳號確認信件就無法送出。所以,Drupal 社群中就有人開發出 SMTP Authentication Support 模組,透過 PHPMailer 所提供的功能,可以設定另外一台 SMTP server 來寄信。

    現在使用的版本並非正式版,而是開發中的 smtp 5.x-1.x-dev 版本。它在 Drupal  5.2  上面運作的很正常。

  • 夏末傍晚的天空

    夏末傍晚的天空

    實際的橘紅色很漂亮,但這隻 Nokia 6230i 照不出來那感覺。後一分鐘有架飛機自松山機場起飛劃過天空,同樣拍不出來,放棄…Orz

    向下的電梯中,一位客戶轉頭問道…
    客戶:「我們都很懷疑你有沒有女朋友 ?」
    Kirin:「沒有」
    客戶:「你太安靜了」
    Kirin:「我內向又害羞啊~」

    然後是靜默…真不知道該說什麼…噗~ XD