![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
PerlGateというアクセス制限のCGIを利用しています。
これはリファ元を絶対パス指定するのですが、レンタルサーバの設定で昔のURLと現在のURLの2つが存在し、Yahooでは旧URL、Googleでは現URLがヒットするため、「どちらのURLでも同じページ内容を表示しながらURLが異なる」という状態になっています。
そこで、リファ元:新 or 旧 →CGI起動、以外→404 のように設定することはできるでしょうか?
取りあえず、今は旧URL利用者には新URLで入り直してもらうようアナウンスはしていますが、Yahooから来る方が多いので、できればなんとかしたいので、宜しくお願いします。
(手引きがあれば設定はなんとかできますが、perlはまったく分からないので...)
No.1ベストアンサー
- 回答日時:
PerlGateの改造より、旧URLへのアクセスを新URLへ自動転送させた方が手っ取り早いと思います。
旧URLのperlgate.cgiを下記内容にそっくり変更して下さい。
(下記をまるごとコピーしてテキストエディタに貼付け、ファイル名「perlgate.cgi」で保存→旧URLのperlgate.cgiへ上書き)
-----------------------------ここから↓
#!/usr/local/bin/perl
##### 転送先のURL
$newurl = 'http://xxxxxxxxxx/xxxxxx/perlgate.cgi';
##### タイトル
$title = '自動転送';
##### 背景色・文字色等の設定
$body = '<BODY BGCOLOR="#FFFFFF" TEXT="#000000">';
##### 自動転送する待ち時間
$wait = '1';
##### 転送画面のコメント
$comment = '○○○○の入口は、移転しました。';
##### コピーライツ表示等
$copyright = 'Copyright © 2008 ○○○○ All rights reserved.';
########## ↑ 設定はここまで ↑ ##########
#------------------------------#
# ここから下が転送画面の表示。 #
#------------------------------#
print "Content-type: text/html\n\n";
print "<HTML>\n<HEAD>\n<TITLE>$title</TITLE>\n</HEAD>\n";
print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\">\n";
print "<meta http-equiv=\"refresh\"content=\"$wait; url=$newurl\">\n";
print "</HEAD>\n";
print "$body\n";
print "<br><br><br><br><br>\n<center>\n";
print "<H3>$comment</H3>\n<br>\n";
print "<P>自動転送しない場合は、<a href=\"$newurl\">こちら</a>へ</P>\n";
print "<br><br>\n";
print "<P>$copyright</P>\n</center>\n";
print "</BODY>\n</HTML>\n";
-----------------------------ここまで↑
この回答への補足
新旧どちらのURLも掲載ページの実データは同じもの(text.html)で、perlgate.cgiをセットしたところを教えていただいたcgiに変えたところ、
新URLからは問題なくきちんとperlgateを呼び出せるのですが、旧URLだと教えていただいたcgiは動くのですが、そのあとperlgate.cgiを読み込む段階で「404」になってしまいます。
やはり、旧URLの場合新URLを読み込んでからでないとダメなようです。
ありがとうございます。
つまり、掲載ページからperlgateを起動するのではなく、一旦別のページをCGIで作って、そこからperlgateを起動する形にするわけですね。
試してみます。
No.2
- 回答日時:
ANo.1です。
旧URLのcgi変更をアドバイスした目的(旧URLのperlgate.cgi)は、本来のperlgate.cgiを動作させるものではなく、単に新URLへ飛ばす為のcgiです。
※変更アドバイスした内容の変数(少なくとも$newurlは、適切な新URLに)設定されましたか?
※従って、旧URLのサイトには必要なディレクトリと内容変更したperlgate.cgiだけ置いておけば良いという事です。
◎39callさんのサイト内容が分かりませんので、私が勘違いをしているのかもしれませんが、Yahoo検索から旧URLのperlgate.cgiへアクセスされた方を、新URLへ自動転送させるというものです。
2度目のご回答、ありがとうございます。
ご提案内容を見ていて「新掲載ページに飛ばす」という発想がなかったことに気づきました。
CGIを仕掛けたページはトップ以下のページですので、トップや他のページからこのページへのリンク先を絶対パスに変更することで解消できてしまいました。
お手数をおかけしました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(IT・Webサービス) 301リダイレクトの使い方について 7 2022/04/05 17:50
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- その他(IT・Webサービス) ホームページにカウント数を表示する 2 2022/10/28 10:37
- HTML・CSS Dreamweaver のテンプレートでの相対パスの設定について 2 2023/06/13 17:28
- WordPress(ワードプレス) Wordpressの記事URLを自由に決めたい 3 2022/06/02 12:05
- PHP PHPを使って、別サイトの一部を取得して表示したいのです。。 1 2023/01/18 21:45
- Excel(エクセル) セルの値をグーグルで検索するエクセルVBAについて! 2 2022/08/01 21:41
- UNIX・Linux ubuntuのサーバー(virtual box)が、再起動するとデータが消えてしまいます。 4 2022/04/27 21:29
- CGI (フリーの)ツリー掲示版CGI、昔は多用させてもらいましたが・・今セキュリティ上どうでしょう? 2 2023/06/25 07:18
- JavaScript [再掲]指定したパスが現URLに含まれていたら特定要素を削除するJavascriptのコードについて 1 2023/05/10 15:09
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ひとつのCGIファイルに複数のペ...
-
フォントサイズを変えるには?
-
sendmailを使って宛て...
-
Perlのファイルのアップロード...
-
掲示板 imgboard のcgi改造方法
-
Ruby/DBIが上手く動きません。。
-
パスワード認証のCGI
-
伝言掲示板の作成(超初心者です)
-
普通のHTMLの画面からCG...
-
掲示板などのCGIにおけるスタイ...
-
2つのドメイン、同じサーバー。...
-
CSVを読み込んでメニューを作成...
-
Yomi-Search新規ウインドで開く...
-
ファイルのアップロードができ...
-
4年に1回+6,62以上は1の位を...
-
socketを使って外部のファイル...
-
wordの数式について 定積分を書...
-
ラジオボタンが両方とも選択で...
-
チェックボックスとセレクトボ...
-
(Perl)ReadParseによるハッシ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlからパラメータで、cgiに渡...
-
sendmail 送信先を複数設定す...
-
iis+cgiでmultipart/form-data...
-
フォントサイズを変えるには?
-
CGI経由でのPDFファイルをダウ...
-
perl/cgi リダイレクトができない
-
2つのドメイン、同じサーバー。...
-
サーバー上のPDFにCGIでパスワ...
-
クッキー書き込みが正常に行わ...
-
cgi(perl) sendmailの使い方
-
CGI
-
クッキーを使って投票欄に名前...
-
TOK2で基礎的なCGIをUPしたが動...
-
クオートの多重入れ子をするには?
-
CGIでテキストボックスの内容に...
-
フォームメール(iモード用)で...
-
プログラム実行中の待機ページ...
-
ホームページビルダーで作ったh...
-
substrで数値を抽出してのマッ...
-
perlで重複データを集計
おすすめ情報