GETでパラメータの渡し方について

このQ&Aのポイント
  • GETでパラメータを渡す方法について疑問があります。
  • 通常は「?」を使ってパラメータを渡しますが、この記号を省略する方法はあるのでしょうか?
  • 例えばファイル名の後ろにパラメータを付けずに、ディレクトリの直下にパラメータを配置する方法はありますか?
回答を見る
  • ベストアンサー

GETで「?」無しでパラメータの渡し方について

ふと疑問に思いご存じの方がいらっしゃいましたらご教示下さい。 Aのページから検索を掛けてBのページでその結果を表示するという PHPスクリプトを書こうと思っています。 通常であれば、Aのページでmethod="GET"にして、「B.php?search=パラメータ」のように 次のページヘパラメータを渡してあげれば当然問題なく行けると思いますが、 このとき、ファイル名の後ろに付ける「?」を省略させて何らかの方法で動くようにする事は できないものなのでしょうか? 例えばBのファイルを「index.php」という名前にしておいて、「search」ディレクトリの 直下において「search/パラメータ」といった具合です。 「search/?パラメータ」で動作できる事は確認しました。 解決方法に付いてお分かりの方いらっしゃいましたら、ご教示のほどよろしくお願い致します。

  • PHP
  • 回答数1
  • ありがとう数2

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

  • ベストアンサー
  • ma-tsu
  • ベストアンサー率32% (190/593)
回答No.1

mod_rewriteを使えば簡単に実現できます。

参考URL:
http://blog.su-jine.net/archives/2004/08/_mod_rewrite.html
yossy_biz
質問者

お礼

ご教示ありがとうございました。 SEOを意識しての質問でしたので、まさにストライクど真ん中のご回答でした。 ありがとうございました。 早速ご教示頂いた手法で実装を進めていきたいと思います。 ありがとうございました。

関連するQ&A

  • v5.58でGETパラメータの取得

    サーバの移転に伴いアクセスログの移転をしているのですが、特定の機能だけ動きません。 どうもGETでパラメータが取得できていないようです。 GETパラメータの取得には *decode = &parseInput($ENV{'REQUEST_METHOD'}); $act = ($decode{'・・・'}); としています。 しかいこの$actに何も取れていないようなんです。 $actの値によってifで条件分岐しているのですが、elseになってしまい 正常に動きません。 他の機能では正常に動いているのですが、原因が分からず困っています。 どなたかご教授頂けないでしょうか? PHPはある程度わかるのですが、Perlは全然わかりませんので、大苦戦中です。 どうかご教授をお願いします。

    • ベストアンサー
    • Perl
  • get コマンドのlocalfile パラメータについて

    環境:XPproSP2 接続先(例):ftp://ftp.mozilla.org/pub/mozilla.org/ ダウンロードファイル:README ダウンロード先:c:\123(c:\直下の123という名前のフォルダ) 入力コマンド:get README c:\123 目的:リモートサイトのREADMEというファイルを ローカルのc:\123フォルダにダウンロードしたい。 ftpのgetコマンドのlocalfileパラメータを指定して実行すると... ftp> get readme c:\123 Error opening local file c:\123.(←フォルダ名) > c:\123:アクセス許可が拒否されました というエラーが表示されダウンロードできません。 localfileパラメータをフォルダだけでなく ファイル名まで指定すると... ftp> get readme c:\123\readme 200 PORT command successful. Consider using PASV. 550 Failed to open file. というエラーが出ます。 かたやlcdコマンドであらかじめカレントディレクトリを c:\123に移動しておいて lcd c:\123 get README で実行するとダウンロードできます。 c:\123フォルダにはログオンユーザのほか 考えられるユーザーにアクセス許可を 設定しましたが、状況は変わらずです。 get コマンドのlocalfile パラメータの書式が まずいんでしょうか? それともコマンドプロンプトのftpコマンドから フォルダへのアクセスには何か特定のシステムアカウント のアクセス許可を設定しなければいけないのでしょうか? よろしくお願いします。

  • 検索結果のGetパラメータが残る?

    検索結果のGetパラメータが残る? テキストベースのファイルからキーワード検索をさせているのですが、検索結果をページ分割(次の10件とか)して結果表示させたときに、 例として 「猫」+「白」のキーワード検索した場合に 10ページ分の検索結果があり、検索結果を10ページまで表示させた後に 「猫」+「黒」の再検索で結果結果が5ページまで見つかったのにもかかわらず、 「猫」+「白」で検索し表示したページ番号の10ページが残ってしまい検索結果としてはTrueですが、 ページ番号10ページのGetパラメータが残ってしまいます。 検索フォームと検索結果のページはPHPで同じページに表示するようにしていますが、 <input type="submit" value="データ検索"> の送信ボタンの上でマウスを乗せた時にGetパラメータとして「ページ10」が残っています。 スクリプト内ではフォーム内は $_SERVER['SCRIPT_NAME']; で実行しています。 このような問題の経験があるかたがいらっしゃいましたらアドバイス願います。 いろいろとデバッグして変数の初期化ブラウザのキャッシュ対応(Metaやキャッシュヘッダーなどで解除)したりしてますが解決方法が見出せません。 暫定的な対応としては、検索フォームと検索結果の表示を別ページにして検索は検索、結果は結果といった対応をしています。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • GETパラメータ

    こんにちは CGI初心者です。 http://www.perl-labo.org/formdata/getmethod/get.cgi?日本語 この様に、日本語のGETパラメータを取得したいです。 http://www.perl-labo.org/formdata/jpname/ を参考にしました。 【記述】 #!C:/Perl/bin/perl package plab; sub getformdata { local $rawdata; local %formdata; local @inputs; local($input, $name, $val); if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $rawdata, $ENV{'CONTENT_LENGTH'}); } elsif ($ENV{'REQUEST_METHOD'} eq "GET") { $rawdata = $ENV{'QUERY_STRING'}; } @inputs = split('&', $rawdata); foreach $input (@inputs) { ($name, $val) = split('=', $input); $name =~ tr/+/ /; $val =~ tr/+/ /; $name =~ s/%([A-Fa-f0-9][A-Fa-f0-9])/pack("C", hex($1))/eg; $val =~ s/%([A-Fa-f0-9][A-Fa-f0-9])/pack("C", hex($1))/eg; $formdata{$name} = $val; } return %formdata; } 1; 実行するとサーバーエラーになってしまいます。 パスは「#!C:/Perl/bin/perl」で合っています。 記述方法のミスでしょうか? 教えて下さい!

    • 締切済み
    • CGI
  • javascriptでGETパラメータを扱う

    javascript初心者です。 javascriptでURLをGETパラメータとして取得して、その値を HTMLのaタグのリンク先に指定しようとしています。 こんな感じに出来たらいいと思っています。 ↓ <a href="[GETパラメータで取得したURL]">[GETパラメータで取得したURL]</a> GETパラメータの取得は自力で調べて下記のように記述すればできることがわかりましたが、 aタグのリンク先に指定する記述方法が分かりません。 助けてください。 よろしくお願いします。 <script type="text/javascript"> function getUrlVars() { var vars = [], hash; var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); for(var i = 0; i < hashes.length; i++) { hash = hashes[i].split('='); vars.push(hash[0]); vars[hash[0]] = hash[1]; } return vars; } </script>

  • GETでの受け渡し方法に関して

    教えて下さい。 以下のようにjavascriptの中でGETでパラメータを渡すような記述をしていますが、受け取り 側の方でGETで取得しようとしても取得できません。 何が原因でしょうか? 《NIPPOU_SEARCH.phpの受け取り側》 $tmp_id = $_GET["id"]; 《送り側のphp》 function run_search(){ document.p_form_1.action = "NIPPOU_SEARCH.php?id=777777777777" ; document.p_form_1.method = "GET"; document.p_form_1.submit() ; } 初歩的な事で申し訳ありませんが、教えて下さい。

    • ベストアンサー
    • PHP
  • GETパラメータを自動に付与したい

    PHP5を使用しています。 ある決まったプログラムを呼び出す際に、必ずGETパラメータとしてセッションIDやタイムスタンプを自動的に付与したいのですが、よい方法はありますでしょうか? 例えば、「http://localhost/aaa.php」とアドレスバーで実行した場合、自動的に「http://localhost/aaa.php?ses_ID=xxxxx・・」となるような意味です。

    • 締切済み
    • PHP
  • 外部サーバーからのパラメータ取得について

    外部サーバーからimgタグにて出力したパラメーターを取得するにはどうすればよいでしょうか。 サーバーA php内で出力 <img src=http://bbb.net/get.php?id=1> サーバーB(http://bbb.net/get.php) get.php内で $_GET(id) で取得を試みたのですができませんでした。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • エンコードされたものを、$_GETしたら...

    よろしくお願いします。グーグルdirectory検索のパラメータ%E3%82%A2%E3%83%BC%E3%83%88を使ったWEBアプリを作ろうと思っています。 $query ='%E3%82%A2%E3%83%BC%E3%83%88/' ; //これは'アート/'ディレクトリに対応している print '<a href="'.$_SERVER['PHP_SELF'].'?query='.$query.'">アート</a>'; のリンクをブラウザで実行して、$_GET['query']して、$queryに代入してprintしたところ、'アート/'と表示されました。 '%E3%82%A2%E3%83%BC%E3%83%88/'を何度も持ち歩きたいと思っているので、'アート/'となってもらっては困るのです。なぜなら、この$query ='アート/'を次に$_GETで受け取ると、 'アーチE'と表示されたからです。 '%E3%82%A2%E3%83%BC%E3%83%88/'のまま <a href="'.$_SERVER['PHP_SELF'].'?query='.$query.'">アート</a>で、 次に渡して、$_GET['query']で受取る方法はないでしょうか? または、'%E3%82%A2%E3%83%BC%E3%83%88'をデコードして'アート'にする関数などありますか?  urlencode('アート');は、'%83A%81%5B%83g'という少し短いものになり、これは使うことができないのです。

    • ベストアンサー
    • PHP
  • パラメータ複数取得について PHP

    パラメータの複数取得について教えてください。 1回目の取得は前のページからparamで取得しました。 その後、&val というように、続けたいです。 &valは、同ページのformから取得してます。 <form action="index.php?param" method="get"> formをクリックすると、URLからparamが消えてしまい、 表示されません。 何が違っているのでしょうか?

    • ベストアンサー
    • PHP

専門家に質問してみよう