自CGIのURLからpage=1を取得する方法

このQ&Aのポイント
  • ブラウザに表示されているURLから末尾の「page=1」という文字列を取得する方法を教えてください。
  • 取得した「page=1」をHTMLのMETAタグのDESCRIPTIONに挿入する方法を教えてください。
  • Perlを使用して、URLから「page=1」を抽出し、METAタグに挿入する方法を教えてください。
回答を見る
  • ベストアンサー

自CGIのURLの一部を取得する方法

http://xxx.jp/xxx/xxxxxxx/xxxxxx.cgi?cmd=s&xxxx&xxx&Tfile=Data&TrColor=%xxx&Sort=xxx_xxxx&page=1 上記のようなURLがブラウザに表示されていて、末尾に「page=1」という文字がある時だけ HTMLのMETAタグのDESCRIPTIONに page=1 を挿入したいです。 ちなみに、そのページには、以下のように DESCRIPTIONが記載されており、下記の★の部分に 「page=1」というURLの一部の文字を挿入したいと考えています。 <META name="description" content="説明文 ★"> Perl でどのように記述すれば宜しいでしょうか? どうかアドバイスをお願い致します。 m(_ _)m

  • mcse
  • お礼率55% (148/266)
  • Perl
  • 回答数2
  • ありがとう数16

質問者が選んだベストアンサー

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

QUERY_STRINGの解釈は、すでにそのCGIで使われているので、それに加えれば良いです。 cmd=s&xxxx&xxx&Tfile=Data&TrColor=%xxx&Sort=xxx_xxxx ?以降がそうです。  CGIに情報を渡す方法は、method="get" (デフォルト)のQUERY_STRONGと、method="post" による標準入力(STDIN)と、PATH_INFがあります。  ⇒入力フォーム編(GETとPOSTデータを受け取るには) - futomi's CGI Cafe( http://www.futomi.com/lecture/form/ )  この処理については、あなたのCGIによって様々ですから、具体的なコードは示しようがないですが、あなたのCGIを見ればいずれも書かれているはずです。REQUEST_METHODの値で分岐しているはずです。  if($ENV{'REQUEST_METHOD'} eq "post"){・・・移行  ただ、ページの切り分けでしたら、PATH_INFO(とSTDIN)を使うほうがSEOの上から最善の方法です。検索エンジンを含むユーザーには、 http://xxx.jp/xxx/xxxxxxx/xxxxxx.cgi/page1  としか見えませんから、keywordやdescriptionは最近の検索エンジンは一顧だにしてませんしね。 ・Enviroment Variable and FORM,COOKIE    http://hpcgi1.nifty.com/Iruka/ENV_FORM.cgi/page1.html )    http://hpcgi1.nifty.com/Iruka/ENV_FORM.cgi?page=1 )

mcse
質問者

お礼

こんにちは。 ご返信遅くなりまして申し訳ございません。 詳細なご説明を頂きまして、誠にありがとうございました。 大変勉強になりました。 ご助言いただいた内容で改良してみたいと思います。

その他の回答 (1)

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

QUERY_STRINGをそのまま利用すれば良いです。 そのような場合、PATH_INFOでまわしたほうが良いですよ。

mcse
質問者

お礼

ORUKA1951様 早速、ご回答頂きましてありがとうございました。 QUERY_STRINGという機能を具体的にどのように使えば良いかご指導いただけますでしょうか? コードをご教示頂けると大変助かります。 誠にお手数をお掛けいたしますが、よろしくお願い致します。

関連するQ&A

  • URLの一部をMETAのDESCRIPTIONへ

    ブラウザ上で表示されているURLの特定の文字を、HTMLのMETAタグのDESCRIPTION内に挿入したいです。 Javascriptを使用して、実現するのが希望です。 具体的には、Perlで作ったページのURLが以下のようになっていますが、 最後に「page=1」という文字が出現した時だけ、TITLEに「page=1」と表示したいんです。 http://xxx.jp/xxx/x.cgi?cmd=s&Sort=Num_Count&page=1 ちなみに、そのページには、以下のように DESCRIPTIONが記載されており、下記の★の部分に 「page=1」というURLの一部の文字を挿入したいと考えています。 <META name="description" content="説明文 ★"> ちなみに <script> if(location.search.substring(1).split("&").indexOf("page=1") != -1) { document.querySelector("meta[name='description']").content += " page=1"; } </script> というコードを実行してみましたが、動作しませんでした。 どうかアドバイスのほど、よろしくお願い致します。

  • metaタグを入れるとなぜか余白が

    DreamweaverCS3で、ホームページを作っています。 ほとんど出来上がったところで、metaタグを使って、それぞれauthor、 keywords、 description、を記述しました。 <meta name="author" content="xxxx" /> <meta name="keywords" content="xxx,xxx,xxx" lang="ja" /> <meta name="description" content="XXXXXXXX" />  するとページ上部の余白をゼロにしていたのに、なぜか余白ができてしまいます。 で、追加記述したメタタグをすべてとると、余白がなくなります。 どれかひとつでは、余白ができたままです。とにかく全部とらないとだめです。 utf-8をshift_jisにしても変わらないですし…。 ちなみにテーブルレイアウトです。 記述の方法は本を何度読んでも間違っていないのですが、なぜでしょう?素人な質問ですいません。よろしくお願いします。

    • ベストアンサー
    • HTML
  • ニュージーランドの電話の掛け方が分かりません

    宜しくお願い致します。 ニュージーランド0800-xxx-xxxに日本から電話を掛けたいのですが 0033-010-64-800-xxx-xxx として掛けても繋がりません。 「…direct international」とかいうガイダンスが流れるだけです。 (なんていっているのかよく分かりません) 09-xxx-xxxxには 0033-010-64-9-xxx-xxxx として掛けれます。 どうすれば0800で始まる電話番号に掛けれるのでしょうか? 因みに 0033-010-64-0800-xxx-xxx としてみると 「お客様のおかけになった番号は…」 となってしまいます。 Skypeでも +649xxxxxxx はかけれますが +64800xxxxxx は 「…direct international」とかいうガイダンスが流れるだけです。

  • htmlでCGIを作動させたい

    PC用とモバイル用のサイトを作成しています。 http://www.abc.com/ にアクセスすれば自動で振り分けするよう index.cgiというCGIスクリプトを作成しました。 それをindex.html内に組み込んで自動でCGIを呼び出すことは可能でしょうか? 何故わざわざindex.htmlをつくるかというと、METAタグで検索エンジンに引っかかるようにする為です。 <!--#exec cmd="index.cgi"--> を入れてみましたが、振り分け先リンクが表示されるだけで自動では飛んでくれませんでした。 以下、index.htmlのソースです。 <html> <head> <title>ああああ</title> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta name="description" content="ああああ"> </head> <!--#exec cmd="index.cgi"--> </html> 拙い文章&初歩的な質問で申し訳御座いません。 何卒よろしく御願い致します。

    • ベストアンサー
    • CGI
  • メール署名にありましたが、stってなんのことでしょうか?

    とある会社からのメール末尾のの署名欄に >Tel 03-3xxx-xxxx >Fax 03-3xxx-xxxx >St x-xxx-xxx >E-Mail xxxx@xxxxxxx.jp とありました。この中の >St x-xxx-xxx(xはすべて番号) とは何をあらわす番号でしょうか?

  • gooでURL登録をする際の「キーワード」について。

    FAQでURL登録方法を読んだのですが書いてなかったと思うので教えてください。 説明文に関しては<META name="description" content="ここにページの概要やコメントを記入します"> で採用されるとのことなのですがキーワードも同じく <META name="keyword">で採用されるのでしょうか?もし採用されるのであれば 何文字以内でしょうか?誰か知っている方がいらっしゃれば教えてください。

  • なんで標準出力に出ないんだろう

    初心者です。教えて下さい。 勉強のつもりで簡単なPerlプログラムを作ったんですが、これを実行するとダウンロードになっちゃうんだな なんでだろ #! /usr/local/bin/perl -w use strict; my $Agent_ID='PC'; my $Pass_Name='PC_index.html'; #####"この2行はあとで使おうと思って入れてあります" print<<"EOM"; Content-type:text/html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <TITLE>xxxxエンジニアリング</TITLE> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META name="description" content="xxxxエンジニアリングのホームページです。"> <META name="keyword" content="xxxxエンジニアリング"> <META name="auther" content="xxxxエンジニアリング"> </HEAD> <BODY bgcolor="skyblue"> ようこそ、xxxxエンジニアリングのホームページへ。<BR><BR> </BODY> </HTML> EOM 1;

    • ベストアンサー
    • Perl
  • Access フィールド内の文字抜き取り

    フィールド内が/xxxxx/xxxxxxx/xxx/xxxx/ このようにスラッシュで区切られている。文字列があります。 (スラッシュ内の文字列は不規則かつスラッシュの数も不規則) /1/2/3/4/ /xxxxx/xxxxxxx/xxx/xxxx/ このよに1.2.3.4を別に抜き取り、フォームの非連結のテキストボックスA.B.C.Dに (Aに1をBに2をのように)代入できる方法なないでしょうか? よろしくお願い致します。

  • メタタグの最適なキーワードの数

    以下のメタタグを入れる際、最適なキーワード数、文字数とかってあるのでしょうか? <meta name="Keywords" content="←いくつ?? <meta name="Description" content="←何文字?

  • URLを指定して、ソース文字列を取得したい

    String getSourceText( URL url ) メソッドの実装方法を教えてください。 仕様は単純で、URLからそのページのソースを文字列で取得するものです。 例えば、  String s = getSourceText( new URL("http://www.google.co.jp/") ); とすると、s =  <html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8">  <title>Google</title><style>body,td,a,p,.h{font-family ...... としたいのです。

    • ベストアンサー
    • Java

専門家に質問してみよう