前回の続き。
特定のURLに特定のリファラを持ってアクセスがあった場合、どっか他のサイトにリダイレクト!
ってのを作ってみる。
httpd.confはこんな感じ。
PerlSwitches -I/usr/local/apache2/site_perl
PerlTransHandler Apache::Trans
で、Apache::Transはこんな感じ。
package Apache::Trans;
use strict;
use APR::Table ();
use Apache2::RequestRec ();
use Apache2::Const -compile => qw(OK DECLINED REDIRECT);
sub handler {
my $r = shift;
my $headers_table = $r->headers_in;
if ($r->uri eq '/hoge.html' and
$headers_table->get('Referer') =~ m,www\.yahoo\.co\.jp,) {
$r->headers_out->set(Location => 'http://www.google.co.jp/');
return Apache2::Const::REDIRECT;
}
return Apache2::Const::DECLINED;
}
1;
とりあえず、これで思い通りの事はできた。
こんなことしなくてもmod_rewriteで出来るじゃん!って突っ込みはナシの方向で。
mod_perl2の勉強をかねてるので、無駄なことでもいいのです。
コメント