• ベストアンサー

URLの動的、静的の違いについて。

URLの動的、静的の違いについて。 現在勤めている会社のwebサイトで『mod_rewrite』というものが使用されていると聞きました。 そこで『mod_rewrite』というキーワードを調べていたところ、説明に「最近では動的ページのURLを静的ページのURLに見せかけるといった用途にも使用されています。」とあったのですが、この動的と静的の違いが分からず困っています。 自分なりに調べてもみたのですが、まだこの仕事を始めたばかりで探し方が悪いのか、しっくりくる答えがなかったので質問させて頂きました。 ご存じの方がいらっしゃいましたら、宜しくお願いします。

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

  • ベストアンサー
  • JaneDue
  • ベストアンサー率75% (263/350)
回答No.3

静的URLが http://○○○.com/××.html などときちんとファイル名で終わっているのに対し、動的URLは http://○○○.com/××.cgi?lang=ja&dataNo=123 のように後ろに引数が入っているものをいいます。?以降はクエリやパラメータとよばれ、その値に応じて何らかの処理をして、ページを動的に生成して表示します。 長所は、パラメータ次第でいくらでもページが生成できますし、修正時は、××.cgiだけで済むので管理が楽です。(Yahooが検索単語ごとにページを用意するとしたら大変なことになるでしょう。) 短所は、パラメータが多いと、グーグル等の検索エンジンが追いかけてきてくれない、つまりそのページは無視されSEO上不利と言われています。 「URLは静的に、実際には動的に生成したい」を実現する方法の代表格が mod_rewrite を使用する方法です。たとえば表面上は、「 ~/ja123.html 」と静的URLにして、それを内部で 「 ××.cgi?lang=ja&dataNo=123 」に変換し、実際には ××.cgiを動かす、という手法が取られています。(なのでja123.html というファイルは実際には存在しないことになります。たぶんこのOKwaveさんもそうだと) ちなみにPerlやPHP等の言語で書かれていても、パラメータがなければURLは「静的」です。 また、SEO上有効かどうかは諸説あり「信頼性の高そうなうわさ」といった風です。Googleでは「クエリが長すぎてはいけない」との記述に留まり、クエリの長さの基準は明記されていません。 まぁ対策しておけば間違いない、といったところでしょうか。

non05410
質問者

お礼

ここまで詳細に説明して頂きありがとうございます。 どこのサイトを見てもしっくりくる回答が無かったので、本当に質問して良かったです。 単純な違いとしてはパラメータのやりとりをしているかどうかということですね。 本当にありがとうございました。

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

>「動的ページのURLを静的ページのURLに見せかける」とはどういうこと ロボットへの解釈のさせ方の問題ですね。 動的なページでGETで処理する場合たとえば・・ http://example.com/hoge.php?page=aaa などとするとhoge.phpというファイルが、pageというパラメータでaaaを受け取っている と解釈されます。パラメータが渡されるということは返ってくる値が不定であると 判断されることからSEO的に不利だというのが一般的な見方です。 これをrewriteすることでたとえば http://example.com/hoge/aaa のように書き換えることができれば、/hoge/aaaという静的なディレクトリにアクセス しているように見た目上なります。 ただ、このような書き換えが厳密にSEOに有利かどうかは絶対であるとはいえません。

non05410
質問者

お礼

サンプルのURLまで書いて頂いたおかげで、大変分かりやすく理解出来ました。 初心者プログラマなので本当に助かります。 ありがとうございました。

  • shippo
  • ベストアンサー率38% (1216/3175)
回答No.1

その静的、動的ということですと、、、 静的はページのリクエストがきたらそのままページの情報を返すだけ。 つまり、見る側からすればサーバーに置かれている状態のまま見られるもの。 動的はページのリクエストに対して何かしらの処理をしてからページ情報を生成し、その生成した情報をアクセスした人に見せるもの。 といった感じですかね。 動的なページにはCGIで記述したものやPHPなどで記述したものがあり、サーバーで何かしら処理をして実際に見せるための情報は別に作ってあげているという点が静的なページと異なるところだと思います。

non05410
質問者

お礼

ありがとうございました。 わかりやすい回答で大変参考になりました。

non05410
質問者

補足

回答ありがとうございます。 では簡単に言うと、 HTMLのみで表示しているものが静的。 CGIやPHP(JavaScriptも?)を絡めているものが動的ということですね。 ではその場合「動的ページのURLを静的ページのURLに見せかける」とはどういうことなのでしょうか? また別途質問になってしまい申し訳ございません。

関連するQ&A

  • mod_rewriteでURLを書き換えたい

    現在掲示板を運営していますが、Googleなど検索サイトからのクロールがうまく行われません(サイトマップなどは試しました)。 URLに“?”や“=”が含まれる動的なページはクロールされずらいことがあるとのことで、調べてみると、mod_rewriteを使うことで 静的ページのように表現できるということまでわかりました。 また、レンタルサーバに問い合わせた結果、mod_rewriteは.htaccessファイルに記述することで使用することができるとのことでした。 (例)http://www.aa.com/bb.php?cc=123 現在上記のようなURLで、最後の数字が入れ替わるようになっています。 このURLの“?”や“=”を“/”などを代用するなりして表示されないようにしたいと考えておりますが、 いろいろ調べてみましたが、私のスキルでは具体的にどのように書けばよいのかわかりませんでした。 .htaccessにいかように記述すればよいのでしょうか。 アドバイスのほどよろしくお願いいたします。

  • 短縮URL(redirectでなく)を設定したい

    短縮URL(redirectでなく)を設定したい http://example.com/半角英数字 みたいな短縮URLにアクセスすると、 URLがそのままで(つまりredirectではなく)、ページを閲覧できる方法はどうすればいいのでしょうか? mod_rewriteを使うということはわかっています。 共用サーバですが、mod_rewrite使えます (逆に、mod_redirectは使えません) ですが、どうもうまくいかなく・・・。 http://example.com/?半角英数字 ならなんてことないのですが・・・。 なお、LAMPです。 よろしくお願い申し上げます。

  • 動的URLを静的URLへリダイレクト

    サーバの移転にともない、古いURLから新しいURLへリダイレクトさせる作業を行っています。 旧:http://aaa.bbb.com/default.asp?year=yyyy&month=mm ↓ 新:http://mmm.nn.co.jp/yyyymm しかし上記のようにパラメータを持っているURLはうまくリダイレクトされません。 今回の場合、動的ページを静的ページに見せるのではなく、URL欄も表示も静的ページに遷移させます。 この作業にはISAPI_Rewriteを使っていますが、ISAPI_Rewriteで検索してもmod_rewriteで検索しても、静的URLから動的URLへのリダイレクト(URLは静的で表示が動的ページの内容)しかでてきません。 そもそも正規表現に「?」を入れるとリダイレクトできないのか(?がエスケープされていない気がします)、書き方が間違っているのなら正しい書き方を教えていただけると助かります。 [現在使っている記述] RewriteRule ^aaa/bbb.asp\?year=(.*)&month=(.*)$ http://one.case.com/ddd/$1$2 [R,L] よろしくお願いいたします。

  • mod_rewrite について

    MVC モデルで web app を作る場合、mod_rewrite で url を「書き換え」て、1つのソースコードですべてのアクセスを処理する、 みたいなことはよくやられると思うのですが、 巷の情報を漁ってみると、 「mod_rewrite では post で渡されたパラメタを取得できない」 とのことでした。 でもこれって、リダイレクトした場合に、そうなることがありえるって話ですよね? mod_rewrite って、url を「書き換え」てるだけじゃないんでしょうか? url を書き換えて、リダイレクトまでされているんでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • 【URL統一】 /index.html へのアクセスを /で終わるURLに

    以下のサイトは、私が実現したいことの逆の設定をしていると思われます。 http://www.jaccs.co.jp/index.html http://www.jaccs.co.jp/ にアクセスすると、index.htmlつきのアドレスに転送されています 上記の例の逆のように、 http://www.hoge.com/index.html にアクセスされた場合、 http://www.hoge.com/ とさせるには、どのようにすればよいでしょうか? 以下のようなサイトを参考にしたりして、いろいろ調べてみましたが、うまくいかなかったり無限ループになったりしてしまいます。 http://pmakino.jp/tdiary/20061105.html#p02 http://codezine.jp/a/article/aid/1096.aspx おそらく 「mod_rewriteを利用して、URLを書き換える」 というのが、答えにたどりつけそうな手法だと思うのですが、ソースが分かりません。 詳しい方、ご教授お願いします。

  • mod_rewriteで動的ページを静的に変更

    PHPのカテゴリで同じ質問をしているのですが、3日目になっても、回答がいただけないので、同じ質問をさせていただきます。 動的ページを静的なページにしようとして、mod_rewriteの勉強をはじめようとしているのですが、疑問が出てきたので、確認させてください。 「何を当たり前のことを言ってるんだ。」と思われるかもしれませんが、教えて下さい。 htaccessからmod_rewriteを用いて、 (1)sampl.php?mod=1&id=3 を見かけ上、(2)sample/mod_1/id_3.html のようにすることは、mod_rewriteでできるということですが、 サイト全体を静的に見せようとしたら、プログラム側の呼出し(サイト内のリンク)を、(1)の形式から(2)の形式に全て変更しないといけないのでしょうか? htaccessだけをいじれば、静的にできると思い込んでいたのですが、 プログラムを変更しないといけないとなると、覚悟が必要なもので。。。

  • .htaccessにmod_rewriteを設定して静的なURLにしたい

    .htaccessにmod_rewriteを設定して、動的なページのURLを静的なURLにしたいのですが、うまくいきません。 http://localhost/test/hoge.php/aiueo というURLで http://localhost/test/hoge.php?key=aiueo になるようにしたいのです。 検索して試しに以下のように記述したのですが、ダメでした。 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^/test/hoge.php/(.+) /test/hoge.php?key=$1 [L] </IfModule> また「aiueo」の部分にスラッシュを含む場合もあるのですが、その際にも対応できるようにしたいです。 ご回答の程、よろしくお願いします。

    • ベストアンサー
    • PHP
  • mod_rewriteによるURLの書き換え

    mod_rewriteを使ってURLの書き換えを行いたいのですが、どうしてもうまくいきません…。 http://***.main.jp/rewrite/name/index.shtml?total=num にアクセスされた場合に http://***.main.jp/rewrite/php.php?title=name?total=num に切り替えて処理させたいと思っています。 .htaccessには RewriteEngine on RewriteRule ^(.*)/index\.shtml\?total=([0-9]*)$ rewrite/php.php?title=$1&total=$2 このように記述したのですが、書き換えが行われずにindex.shtmlの内容が表示されてしまいます。 どうか、ご教授いただけませんでしょうか? サーバーはロリポップを使用しています。

  • OEメールが届きました。そこにはURLが張られています。そのURLをク

    OEメールが届きました。そこにはURLが張られています。そのURLをクリックしたら、事前に開けておいたWEBページが消え去り、そのメールのURLページが表示されます。以前のWEBサイトを消さずに、メールからクリックしたURLは新規ブラウザで観る方法はあるでしょうか?

  • ページのURLを知りたい

    Webページを移動しても、URLがトップページのアドレスのまま 変わらないサイトがあるのですが、画面に表示しているページの URLを知る方法があれば教えてください。 ・フレームで切られているようには見えません。 ・ページのプロパティを確認してもトップページと同じアドレスになっています。 ・新しいウィンドウで開くことができません。 使用ブラウザ:IE8 どうぞよろしくお願いします。