|
旧Webサーバー(インターネット->ポート:8080->delegate:80->旧Webサーバー)から新Webサーバー(https)へのリダイレクト方法がやっと分かった。 旧Webサーバーは Apache 2.0.63 ソースからコンパイル(--enable-rewrite付)してインストールしたものだ。 組み込みモジュールは、/usr/local/apache2/bin/httpd -lで以下のとおり。
mod_rewrite.c が使えるようになっている。 最近のApacheのように、httpd.conf内にLoadModuleとして使うものではない。
最初、新Webサーバーのように何も考えずドキュメントルートに以下 .htaccess を書いた。
RewriteEngine on RewriteCond %{SERVER_PORT} 80 [NC] RewriteRule ^(.*) https://takaq1.plala.jp/$1 [R=301,L]
しかし、エラー500で一切NG
・・・で調べたら、.htaccessは以下のように書かないといけないらしい。
<ifModule mod_rewrite.c> RewriteEngine on RewriteCond %{SERVER_PORT} 80 [NC] RewriteRule ^(.*) https://takaq1.plala.jp/$1 [R=301,L] </ifModule>
※かっこは全角で書いてます。このスクリプトで消されてしまうためです。
mod_mod_rewrite.cが使えるのなら、if内を実行しなさいというもののようだ。
そんで、.htaccess を書いたらやっぱりエラー エラーログには「RewriteEngine not allowed here」で「ここでは使えない!?」 えっ? そんなー ・・・でまた調べたら・・・
結果、httpd.confのドキュルントルートのタブで以下を修正
# Options FollowSymLinks Options All
#AllowOverride Options AllowOverride All
そして、sh /usr/local/apache2/bin/apachectl configtest でOKを確認
sh /usr/local/apache2/bin/apachectl stop sh /usr/local/apache2/bin/apachectl start
そして、ブラウザから旧Webサーバーのコンテンツに接続したら見事に新Webサーバーにリダイレクトされていた。 当初、delegateでリダレクトできないか調べたけど、どうもできないようだ。
これでしばらくリダイレクトして、Googleとかに https で登録されたら旧Webサーバーは仮想イメージ保管して停止とする。
やれやれ。
|
|
|