トップ «前の日記(2008-05-21) 最新 次の日記(2008-05-24)» 編集

ORCA愉快日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|10|11|12|
2012|01|02|09|
2013|04|

2008-05-23 Pukiwiki移転の際に便利なmod_rewriteの設定メモ

_ [Linux] Pukiwiki移転の際に便利なmod_rewriteの設定メモ

Pukiwikiのサーバを移転させた際に、旧サイトへのWikiアクセスを新サイトに転送するためのApacheのmod_rewriteではまったのでメモ。Query Stringがエンコードされないように、フラグにNEを追加する必要がある。

□ Pukiwiki移転の際に便利なmod_rewriteの設定メモ
Apache環境でPukiwikiを使っている場合、Apacheのmod_rewriteモジュールを
利用することで、旧Wikiへのアクセスを新Wikiに転送させることができる。
  
下記の例の場合、Apacheでmod_rewriteモジュールが有効になっており
.htaccess が利用可能に設定されていることが前提条件。
  
pukiwikiなどでは、日本語などの2バイト文字を含んだページ名は
URLエンコードされたURLとして表示される。
下記は、Pukiwikiでの"Javaメモ"というページのURLの例。
http://example.com/wiki/index.php?Java%A5%E1%A5%E2
  
  
しかしながら、Apacheのmod_rewriteを使って、ページ構成を変えずに
他のサイトに転送しようとすると、以下のようなアドレスにアクセスしようとして、
Pukiwikiの"Java%25A5%25E1%25A5%25E2"という編集ページに飛んでしまいます。
  
* wikiディレクトリに作成した .htaccessの例
-----------------------------------------------------------
RewriteEngine on
RewriteRule ^(.*)$ http://example.net/wiki/$1 [R=301,L]
-----------------------------------------------------------
  
* アクセス先URL  
--------------------------------------------------------------------------
http://example.net/wiki/index.php?Java%25A5%25E1%25A5%25E2
--------------------------------------------------------------------------
    
これは、query string中に含まれる"%"の文字がmod_rewriteで転送させる際に
エスケープされ、"%25"になってしまうためです。
  
Apache 1.3のmod_rewriteのマニュアルによると
--------------------------------------------------------------------  
'noescape|NE' (no URI escaping of output)
このフラグは、mod_rewrite が書き換え結果に対して通常行なわれる 
URL エスケープルールを適用しないようにします。
通常は ('%', '$', ';' といった) 特殊文字については、それらと等価の
16 進数文字列 (順に '%25', '%24', '%3B') にエスケープされます。
 このフラグはこの動作を抑制します。 これにより、出力の中に
パーセント文字を使うことができます。 以下に例を挙げます。
  
    RewriteRule /foo/(.*) /bar?arg=P1\%3d$1 [R,NE]
   
この例では、'/foo/zed' が安全なリクエストである '/bar?arg=P1=zed' 
に変更されます。
注意: noescape フラグは Apache 1.3.20 以降でのみ有効です。
--------------------------------------------------------------------
というのがあったので、[フラグ]にNEを追加すればURLエスケープを行わなくなります。
  
  
ということで、Pukiwikiをサイトごと転送させるには、下記の例のようにすれば良いです。
* wikiディレクトリに作成した .htaccessの例
-----------------------------------------------------------
RewriteEngine on
RewriteRule ^(.*)$ http://example.net/wiki/$1 [R=301,NE,L]
-----------------------------------------------------------
  
* アクセス先URL  
--------------------------------------------------------------------------
http://example.net/wiki/index.php?Java%A5%E1%A5%E2
--------------------------------------------------------------------------
これで、問題なく転送できるようになりました。
  
参考URL
Apache 2.0 mod_rewrite
http://httpd.apache.org/docs/2.0/ja/mod/mod_rewrite.html#rewritecond
Apache 1.3 mod_rewrite
http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html
bayashi.net - mod_rewrite  URLを書き換えるApacheモジュール
http://tech.bayashi.net/svr/doc/apache/mod_rewrite.html
ITPro - 設定を上書きする「.htaccess」
http://www.itproexpo.jp/article/COLUMN/20080512/301299/

_ [Linux] 住友電工がOpenOffice.orgを導入した真相のメモ

MS Officeを使いながらも、OpenOffice.orgを必要な部門に柔軟に広げていく、という手法はとても良いですね。大手企業ともなると、なかなか柔軟に動けなくなることが多いですし。将来的なODFフォーマットへの対応や、ライセンスコストの問題としても、先を見据えた戦略をとっている住友電工は高く評価できますね。また、住友電工ほどの大手企業がプレスリリースを打つというのは、OpenOffice.Orgのコミュニティにとっても少なからずメリットになるでしょう。事例がないと導入に躊躇する国内企業にとっても、いい刺激となるのでは。

ITPro - 「コスト削減が狙いではない」、住友電工OpenOffice導入の真相
http://itpro.nikkeibp.co.jp/article/NEWS/20080523/303912/

トップ «前の日記(2008-05-21) 最新 次の日記(2008-05-24)» 編集