差分表示


Apacheのmod_rewriteを使って,移転元URLから新URLへの誘導を行う
//parent=Apache
&include_htmlfile(comp/urlchange2,http://kamoland.com/comp/);
*URLリライト方式によるURL転送作業

 [[前回の内容>中継ページ方式によるURL転送作業]]で,kamoland.homeip.net/* への来訪者を,kamoland.no-ip.com のトップページへ誘導する,
ということをやったのですが,
独自ドメイン取得により,またまたURLが替わりました.

今度はどうしようか,ということですが,Apacheの知識も増えたので別の方法を使ってみます.

Apacheの拡張モジュールであるmod_rewriteを使うことで,kamoland.no-ip.comへ来た要求を,
kamoland.comへの要求に変換してもらいます.
----


**mod_rewriteの導入
 Apacheに,mod_rewriteというモジュールを導入します.
標準でついていると思いますが,通常はオプションをつけてApacheを再コンパイルする必要があります.

&ltitle(コンパイル前のconfigure実行例);
--(
$ ./configure --enable-dav \
 --enable-headers \
 --enable-so \
 --enable-rewrite \
 --enable-deflate

--)
今回実際に必要なのは,''--enable-rewrite''になります.
その他は,俺の趣味というか何というか.

この後,いつものようにmake, make installすればokです.
----


**mod_rewriteの設定

&ltitle(httpd.confより抜粋);
--(
<VirtualHost kamoland.no-ip.com>
  ServerName kamoland.no-ip.com
  RewriteEngine on
  RewriteRule ^/(.*)  &verb(http://)kamoland.com/$1 [L,R]
</VirtualHost>

--)
これまで

-(旧) &verb(http://)kamoland.no-ip.com

というURLでアクセスしてくれていた人々を,

-(新) &verb(http://)kamoland.com

というURLに変換するわけですが,上記のRewriteRuleで実現できます.

VirtualHostセクション(kamoland.no-ip.com)に記述していますので,kamoland.no-ip.comへのリクエストが対象となります.

そして「.*」は全てのURIと一致し,これが括弧で囲まれているので,その内容がパラメータ$1となる.
これにより,kamoland.no-ip.com配下へのリクエストが,kamoland.com配下へ転送されるという動作が実現できます.

こいつはなかなかスマートだわさ.
----


**問題発覚 (ロボット君)
 しかしこの方式だと,Googleなどサーチエンジンのロボットが,ページが移転したということを検出できずに,
サーチエンジンには''古いURLが登録されたまま''になるという重大な問題があることが,後日判明しました.

そこで,[[リダイレクトによるURL転送作業>リダイレクトによるURL転送作業(Robot対策)]]が必要になります.


© 2023 KMIソフトウェア