差分表示
- 最後の更新で追加された行はこのように表示します。
- 最後の更新で削除された行は
このように表示します。
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を再コンパイルする必要があります.
<itle(コンパイル前のconfigure実行例);
--(
$ ./configure --enable-dav \
--enable-headers \
--enable-so \
--enable-rewrite \
--enable-deflate
--)
今回実際に必要なのは,''--enable-rewrite''になります.
その他は,俺の趣味というか何というか.
この後,いつものようにmake, make installすればokです.
----
**mod_rewriteの設定
<itle(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対策)]]が必要になります.