ApacheでRedirectを使わず、RewriteRuleでリクエストの返信をする方法
ApacheでRedirectを使わずに別サイトへ転送する方法
・条件1:アクセスページやパラメータを条件に転送先を分類する
・条件2:パラメータは引き継がず転送先では破棄する
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} moto_page\.html
RewriteCond %{QUERY_STRING} param01=hogehoge
RewriteRule ^fugafuga/moto_page.html*$ http://example.com/hogefuga/tensousaki_dir/
? [R,L]
とか
RewriteRule ^(fugafuga)/(*)$ http://example.com/hogefuga/tensousaki_dir/ ? [R,L]
とか...
Apacheの環境変数 %{REQUEST_URI} %{QUERY_STRING} の値条件にしている。
RewriteCond が条件
RewriteRule が転送の設定。RewriteRuleで文字を置き換えてるらしい。
が、書き換え先をhttp://から指定すると部分書き換えではなく書き換え先に書いたURLにそのまま
飛ぶらしい。
RewriteBase は、よーわからん。
最後の ? をつけたらなぜかパラメータが引き継がれなかった。
RewriteRule ^(fugafuga)/(*)$ http://example.com/hogefuga/tensousaki_dir/ [R,L,QSA]
としてQSAを付けるとパラメータが引き継がれるみたい。
[L]はそこまでで処理終わり..の意味
[R]はHTTPステータスを302として返す..の意味
Ruby + Apache によるCGIで postgres に接続する場合の環境変数設定
gem install postgres で Ruby 用の postgres ライブラリをインストールしたはいいが、
Ruby の CGI から Postgres への接続がうまくいかなかった。
どうやらRubyの環境変数に Postgres ライブラリへのパスを通してやらないといけないらしいが、
面倒臭かったので、Apacheの設定ファイルに記述した。
こんな感じで。
SetEnv RUBYLIB=/usr/lib/ruby/gems/1.8/gems/postgres-0.7.9.2008.01.28/lib:/usr/local/lib/ruby/●●●/:
postgres の設定は ":" のところまで。
RUBYLIB に設定したいパスごとに ":" で区切る。
なので最初の ":" 以降は別の設定を RUBYLIB に追加したい場合の例。
●●●はあくまで例なので環境に合わせて書き換えを。
よって●●●より上層についても同じくお好きな形で変更必要。
getElementsByName と foms の違い(nameの要素番号指定)
document.forms[0].textname;
document.getElementsByName("textname");
の違いの話。
JavaScriptでHTML上のformにあるinputの値を取得する場合方法は
document.forms[0].textname;
document.getElementsByName("textname");
の2通り。ただし両者は当然違いがある。
たとえば・・・
<input type="text" name="textname" />
<input type="text" name="textname" />
<input type="text" name="textname" />
といった感じで、同じnameのinputが複数ある場合は
alert(document.forms[0].textname[0].value);
alert(document.getElementsByName("textname")[0].value);
といった形でelementのindexを指定してJavaScriptで値を取得する。
しかし・・・
<input type="text" name="textname" />
のように同じnameのinputが複数存在しない(1つだけ)の場合は
※この記述はエラーとなる
alert(document.forms[0].textname[0].value);
1つしか無い場合、elementのindex番号での指定ができない。
※こちらはエラーとならない
alert(document.forms[0].textname.value);
alert(document.getElementsByName("textname")[0].value);
JavaScriptの変数の型の確認
JavaScriptの変数に型の定義をすることが出来ないが、内部的に保持している型によって処理が上手くいったりいかなかったり、することがある。その際型の確認ができると原因の模索が容易になることがある
JavaScrptが内部的に保持している型での型の確認方法
typeof();
という関数を使う。
これで
alert(typeof(hogehoge));
みたいなことをすれば型の定義がわかる。