• 締切済み

相対パスか絶対パス??

CGIサイト内検索を設置したいと思っていますが、相対パスか絶対パスって言う言葉が出てきます。 (例)path/にはsearch.cgiまでの相対パスか絶対パスが入ります。 相対パス・絶対パスとは何でしょう? サーバーにあるホームディレクトリのフルパスとは違うのですか? もしフルパスと同じだと言った場合・・・ 「path/にはsearch.cgiまでの相対パスか絶対パスが入ります」ではフルパスが/home/hatenaだった場合は 下記にはどのようにはいるのでしょうか? (例)<form method="GET" action="path/search.cgi"> 再投稿ですが、もうチョット具体的に書いてみました 教えてくださいお願いします。

  • CGI
  • 回答数3
  • ありがとう数3

みんなの回答

回答No.3

2です。 絶対パスが無難なので、フルパスが「/home/hatena/search.cgi」ならば <form method="GET" action="http://www.aaa.aa/hatena/search.cgi">ではないでしょうか。 「/home」の直下がwwwルートだった場合。

uhb3111
質問者

お礼

重ね重ねお礼申し上げます。

回答No.2

相対・絶対パスの違いについて簡単に説明します。 絶対パスは、つまりは「http://」で始まるアドレスをいいます。 http://aaa.jp/aa/bb/cc/d.cgi という感じです。 これに対し相対パスは、ある.htmから見てd.cgiがどのフォルダにあるか、です。 例えば、フォルダ「bb」の中にフォルダ「ee」と「cc」があって「ee」中に「xx.htm」があるとすると、「cc」の中にある「d.cgi」は「../cc/d.cgi」になります。 「../」は一個上に戻るという意味です。 絶対パスがわかりやすくて無難です。

uhb3111
質問者

お礼

ありがとうございました。参考にさせて頂きます。

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

CGIとhtmlでのパス指定を混同されているように思えます。 >下記にはどのようにはいるのでしょうか? > >(例)<form method="GET" action="path/search.cgi"> htmlではフルパス(サーバパス)は使えません。絶対パス(いわゆる「/」から始まるパス)はドキュメントルート(そのURLのTOP位置)になります。 (ex.)   http://example.com/aaa/index.html の中で /aaa.cgi と指定したら http://example.com/aaa.cgi を表します。  逆にCGI(Perl)の中ではドキュメントルートからの指定は使えません。「/」から書き始めればフルパス(サーバパス)です。ブラウザが解釈するhtmlとサーバが解釈するCGI(Perlやphpなど)では「/」の意味が違うので注意してください。

uhb3111
質問者

お礼

ご解答ありがとうございました。もうチョット勉強します。

関連するQ&A

  • 相対パスか絶対パスって何?

    CGIサイト内検索を設置したいと思っていますが、相対パスか絶対パスって言う言葉が出てきます。 (例)path/にはsearch.cgiまでの相対パスか絶対パスが入ります。 相対パス・絶対パスとは何でしょう? サーバーにあるホームディレクトリのフルパスとは違うのですか? 教えてくださいお願いします。

    • 締切済み
    • CGI
  • CGIなどは絶対パスでも良い?相対パス?SEO的

    こんにちはサンタです。 よろしくお願い致します。 php,perlで作成された メールフォームCGI スケジュールCGI カレンダーCGI を、ホームページに設置致しました。 ネット上で動いております。 さて、これらのCGIを設置するのには、例えばschedule.cgiなどは、相対パスとして、リンクしたほうが宜しいのでしょうか? 現在は、相対パスなのですが、メンテナンスを考えますと、絶対パスの方が、楽だと感じました。ですが、SEO的には、相対パスでリンクしたほうが良いのかなと思い、質問させて頂きました。 1,技術的な不具合の問題があるか、、、。 2,SEO的な問題があるか、、、。 どうぞ、よろしくお願い致します。 失礼致します。

    • ベストアンサー
    • CSS
  • EZWEBでform送信すると携帯のお気に入りに飛んでしまう問題

    PC,iモードの端末では正常に動作するformで ezwebを利用すると、携帯内のお気に入りページに 飛んでしまいます。 <form action="http://. . . . ./search.cgi" method="get"> といった書き方をしています。 どういう原因が考えられるでしょうか? ちなみに、もうひとつ作ったサイトでは、 <form action="....cgi" method=post> という書き方で正常に動作しました。 もちろんこの相対パスによる書き方も 試しましたがだめでした。 なにかこころあたりありますでしょうか

    • ベストアンサー
    • CGI
  • 相対パスについて

    初歩的なことですみません。 相対パスについて教えてください。 <public_html>---<cgi-bin>---<ccc>---<ttt.pl> *************| *************---<eee>---<test.html> こちらの構成で、(***は無視してください。) (public_htmlの下はcgi-binとeeeフォルダです。) test.htmlから見た、ttt.plのパスは ../cgi-bin/ccc/ttt.pl  でよいのでしょうか?? CGIを設置する時、ディレクトリを変えたら、動かなくなってしまったので・・・ 宜しくお願いします。

    • 締切済み
    • CGI
  • 絶対パスと相対パスはどちらがいい?

    htmlで自サイト内のリンクをつける場合、絶対パスと相対パスはどちらを使った方がいいのでしょうか? すべてのファイルが同じディレクトリにあるとして、 <a href="test.html">test</a> と <a href="http://example.com/test.html">test</a> では、SEOの効果が違ったりしますか? 教えて下さい。よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • CGIからの絶対パス

    こんにちは。 perlのCGIでファイルをオープンする際のパス指定で悩んでいます。 cgiとは別のディレクトリにあるファイルをオープンしたいのですが、 このとき、 open(IN,"/home/XXX/YYY/ZZZ.dat"); というふうに絶対パスでオープンしようとすると、オープンできません。 一方、 open(IN,"../../../home/XXX/YYY/ZZZ.dat"); といった感じに相対パスにすると、オープンできます。 ファイルの場所は/home/XXX/YYY/ZZZ.datで間違いありませんし、 cgiとしてではなく、シェルから直接cgiプログラムを起動すると、 絶対パスでもオープンできます。 これはいったいどういうことが起こっているのでしょうか? ご存知の方、ご解説願えないでしょうか。

    • ベストアンサー
    • CGI
  • 相対パスについて

    相対パスについて 基礎的なことですがpublic_htmlの中にあるindexまでの相対パスが分かりません。 public_html /cgi-bin/ aaa.cgi この場合aaa.cgiから見ると../なのか../../なのか? よく分からなくて困っています。

  • 絶対パス、相対パス、環境変数の概念が掴めない

    絶対パス相対パス環境変数についていまいち概念が掴めないのでどなたかご教示いただけないでしょうか? 絶対パスというものは指定のフォルダなどへの行き道をしていしたもの、相対パスはある程度のものだけきじゅつしてあるしか認識できておりません。 ググって探してみてもいまいちいい内容がなくて・・・ 何かいい知識の身につけ方があったら教えてください。 あと例えばCGIを使うためにActivePerlなどを入れたときに絶対パスで指定する方法があるとか言うのはどういった意味なのでしょうか?

    • ベストアンサー
    • Perl
  • 絶対パスを相対パスに

    VC++2005 Express Editionです。 ドラッグアンドドロップで受け取った(DragQueryFile)絶対パスファイル名を相対パスに変換したいのですが、良いコードサンプルなどありましたら教えてください。できればUnicodeとマルチバイトの両方に対応させたいです。 GetCurrentDirectoryでカレントディレクトリを取得してみたのですが、この場合ドライブ名が大文字なのに対し、ドラッグアンドドロップで受け取ったドライブは小文字なので、簡単にはできそうにありませんでした。 文字列処理は今まで標準関数しか使ったことがありませんが、これを機会にコードなど勉強したいと思っています。 よろしくお願いします。

  • ハイパーリンクの相対パスが絶対パスに

    Word2002でホームページを作成しては、サーバーにアップロードしています。OSはXPです。これまで何の問題もなく使えたのですが、ここ数日、相対パスのハイパーリンクが、勝手に絶対パスになってしまいます。 自分はHPで多数のリンクを張るのですが、それらを最初から入力していては面倒なので、既に作ってあるハイパーリンクをコピペし、修正する、というやり方をしています。これまで、それで問題はなかったのですが・・・。つい先日、アップロードしたHPを観覧中、リンクをクリックしたところ、何の反応もありませんでした。ステータスバーのアドレスをふと見たら、アドレスが自分のパソコン上での絶対パスになっていました(C:\・・・)。これではリンクをクリックしても何の反応もないのは当然です。自分のパソコンにあるHPを開いて、リンクを確認したところ、アドレスが絶対パスになっていました。おかしいと思って試しに既に張ってあったハイパーリンク(アドレスは相対パスで../で始まる)をコピペし、アドレスを確認すると、絶対パス(アドレスがC:\で始まる)になってしまいます。「../」だけを他のハイパーリンクからコピペして直せばこれまでどおりになりますが、上述したように自分の場合ハイパーリンクをコピベすることが多いので、コピペする度に絶対パスを相対パスに直すのは面倒ですし、そもそもこれまでそういったことをする必要がなかったのになぜ今更そういう設定になったのか、分かりません。相対パスのアドレスを、コピペしても相対アドレスのままにする設定に戻すことはできないのでしょうか。

専門家に質問してみよう