2010年11月26日金曜日

apacheのrewriteでドメイン変更に対応する

どうも、俺@仕事中です。

今日はタイトルの通り、apacheのmod_rewriteを使ってサイトのドメイン変更に対応する方法についてメモめも。
さらにそのサイトは「*(ワイルドカード)」によるサブドメイン設定がされておりその対応もしなければなりません。

ドメインは
old.jp → new.jp に変更するものとします。
DNSゾーン設定は以下のような感じで
1.2.3.4は仮のサーバIPのつもり
@ IN A 1.2.3.4
* IN A 1.2.3.4


つまり
old.jpでアクセスのあったものはnew.jpにリライトし
foo.old.jpでアクセスのあったものはfoo.new.jpにリライトしたいのです。

apacheのRewriteモジュールはインストールしておいてね。


では設定方法について
# vim /usr/local/apache2/conf/httpd.conf
--------------------------------------------
1 RewriteEngine On
2 Rewrite Cond %{HTTP_HOST} ^(.*)old\.jp [NC]
3 RewriteRule ^(.*)$ http://%1new.jp$1 [R=301,L]
これでapache再起動でOKです。
正規表現はかなり適当なので実運用する場合はも少し丁寧に書いたほうが良いと思います。

ポイントは3行目の
^(.*)$ http://%1new.jp$1
の部分です。
「%1」は2行目のRewriteCondeで設定した正規表現の文字グループを後方参照する場合に使えます。
もちろん複数ある場合は %2,%3..とつづきます。

これで完成ーばんざあぁぁぁぁぁあぃ!

2010年11月11日木曜日

manコマンドで文字化け回避

どうも、俺@仕事中です。

今日はmanページを日本語環境で表示させた場合に文字化けしてしまう場合の対処法めもです。
たぶんmanページが文字化けする以外のシチュエーションでも使えそうな気がします。

例えば
$ locale
LANG=C
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=
のような環境で
$ man less
LESS(1)

NAME
less - opposite of more

SYNOPSIS
less -?
less --help
less -V
less --version
less [-[+]aBcCdeEfFgGiIJLmMnNqQrRsSuUVwWX~]
[-b space] [-h lines] [-j line] [-k keyfile]
--- 以下略 ---
のようにまず問題なく表示されます。
ところが
$ locale
LANG=ja_JP.utf8
LC_CTYPE="ja_JP.utf8"
LC_NUMERIC="ja_JP.utf8"
LC_TIME="ja_JP.utf8"
LC_COLLATE="ja_JP.utf8"
LC_MONETARY="ja_JP.utf8"
LC_MESSAGES="ja_JP.utf8"
LC_PAPER="ja_JP.utf8"
LC_NAME="ja_JP.utf8"
LC_ADDRESS="ja_JP.utf8"
LC_TELEPHONE="ja_JP.utf8"
LC_MEASUREMENT="ja_JP.utf8"
LC_IDENTIFICATION="ja_JP.utf8"
LC_ALL=
のような場合にmanを見ると
$ man less
LESS(1)

<E5><ux><8D><E5><89><8D>
less - more <E3><81><AE><E5><8F><8D><E5><AF><BE> (more <E3><81><AE><E3><82><88><E3><81><86><E3><81><AA><E3><83><9A><E3><83><BC><E3><82><B8><E3><83><A3><E3><83><BC>)

<E6><9B><B8><E5><BC><8F>
less -?
less --help
less -V
less --version
--- 以下略 ---
のようになる場合があります。

こんな時は
$ export PAGER="less -irs"
とするかログインシェルの .xxrcファイルに設定しておけば万事解決です!


以上どえぇぇっぇぇす。

2010年11月5日金曜日

オデの.screenrc

どうも、俺@会議前です。

今日は出張先でも迷わないように、.screenrcの最低限の設定めもです。

$ vim ~/.screenrc
-----------------------------------
vbell off
hardstatus alwayslastline "[%02c] %`%-w%{=b bw}%n %t%{-}%+w" # 下部に表示するstatusline
stuff "export LANG=C"
encoding utf8 utf8 # 文字化け対策 utf8の場合
defencoding utf8
defkanji utf8
autodetach on # デタッチを自動
termcapinfo xterm* is=¥E[r¥E[m¥E[2J¥E[H¥E[?7h¥E[?1;4;6l # teratermなどでウィンドウサイズが変更されるのを防ぐ
とりあえずこれでなんとかなる!


以上どぇぇぇぇぇぇす。