データベースとウィキシステム

このQ&Aのポイント
  • データベースに入れた情報をPHPで取り出すサイトを作成しましたが、検索に引っかからず悩んでいます。
  • HTMLにはフォームボタン程度の記述しかないため、情報がデータベースに入っていても検索にひっかからないです。
  • ウィキはHTMLのページがなくても、データベース内の語句を検索できる仕組みがあるようです。
回答を見る
  • ベストアンサー

データベースとウィキシステム

すいません。ウィキシステムについて質問があります。 データベースに入れた情報をphpで取り出すサイトを自身で作りました。 自分でもよく使うため他の人にもぜひ使ってほしいと思って作ったのですが、 データベースに情報を全て入れているため検索にまったくひっかかりません。 (動的なPHPサイトでも検索に引っかかるというコメント、アドバイスは必要ありません) 例えば(あくまでも例えです) 複数のラジオボタンなどで選択して最後に表示ボタンを押すと、その選択肢にあった情報がデータベースから出てくるサイトです。 ボタンを押さないと当然HTMLにはフォームボタン程度の記述しかないわけで、 情報がデータベースに入っている以上検索にひっかかるハズもなく・・結局項目ごとに手動でHTMLのサイトを作るしかない思っていたのですが(検索用に)、 ウィキは検索にひっかかりますよね? ウィキは膨大な数のページがありますが、項目ごとにHTMLのページがあるわけではないと 聞きました。ではどうやって検索(グーグル)はデータベース内にある語句を検索しているのでしょうか。 まだプログラムを始めてばかりでこのあたりの仕組みが良く分かりません。 (グーグルが調べる語句はあくまでもHTML内にあるプログラムを含む語句だと思うのですが・・)

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

  • ベストアンサー
  • ahoo_ok
  • ベストアンサー率31% (30/95)
回答No.4

あーーーー、回答者側もあれだな。 まぁリクエストのたびにDBからデータを取得してページ生成ってまぁ中小規模システムならあるけど 大規模システムクラスになるとデータベースの情報から静的ページ生成してパフォーマンスを保持している システムなんていくらでもある。 リクエストの都度データベースからデータを取得してページ生成なんてしていたらいくらロードバランサをかまして複数サーバで処理したところで限界がある。 まぁその場合は検索系システムと静的ページを紐付けるシステムも別途作る必要がありますけど 後、データ入力系のバックエンドはRDB系を使うけどフロント側はそのバックエンドからページ生成に必要なデータを一発で取得できてパフォーマンスがいい非RDB系(NoSQL)のDBを使う場合もある。 Facebookが自社のために開発してオープンソースとして寄贈したCassandraがいい例。 あっとそうそう質問者への回答がまだだった。 なんで回答者も手法を知っているように書いているけどどれを使ったらそれができるのか実装の説明を何でしないのだろうか?(あーーー知らないからか。) Apacheだとmod_rewriteモジュールがその機能を有している。 IISだとURL Rewrite Module。 gitパラメータはSEO的に不利だけどインデックスされないわけではない。 getパラメータがあるかとかそれ以前に検索エンジンに食わせるサイトマップなどseo対応しておけよ。

omochiomochi
質問者

お礼

具体的なご回答ありがとうございました。 とりあえず仕組みは良く分かりました。

その他の回答 (3)

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

 ユーザーがサーバーにデータを送る方法に、QUERY_STRING、STDN(標準入力)、PATH_INFOがありましたね。もちろんgoogleはQUERY_STRINGもページとして理解はしてくれますが、限定的です。最も確実なのはPATH_INFOです。  あなたがこのシステムを利用されているのが、 教えて!goo( http://okwave.jp/qa/q8673633.html ) OKWave( http://okwave.jp/qa/q8673633.html ) 楽天 みんなで解決!Q&A( http://qanda.rakuten.ne.jp/qa8673633.html ) などのいずれを使用されているのか分かりませんが、すべてPATH_INFOですね。  新聞社の記事のすべてでしょう。巨大なウェブサイトのほとんどはPATH_INFOと言っても良いでしょう。ブログなどのSNSは基本的に皆そうだと思います。 >(動的なPHPサイトでも検索に引っかかるというコメント、アドバイスは必要ありません)  本当に総拒否して良いのですか??  すべて、動的なサイトなのですけど  Windowsの毒素に犯されて、拡張子の呪縛から抜け出せていないのでは??  ウェブや他のOSは、拡張子は関係ありません。ウェブはサーバーから送られてくるデータ本文より前に送られてくるHTTP応答ヘッダのContent-typeでHTMLか画像かを判断します。あなたが作成しているPHPだって、拡張子は関係なく動作させられるでしょ。 AddType application/x-httpd-php .html 例えば、 Enviroment Variable and FORM,COOKIE( http://hpcgi1.nifty.com/Iruka/ENV_FORM.cgi )の後に、/omochiomochi/PHP/test.jpg としてアクセスしても、ユーザーからは、そのページが存在しているでしょ。

  • chie65535
  • ベストアンサー率43% (8514/19356)
回答No.2

「実は動的URLになっててCGIでデータベースを引っ張ってるけど、静的URLのように見せかける方法」が、以下ページで解説されています。 http://senrioka-info.net/0_google_sitemap/htacs.htm OKWaveも、wikiも、URLには?や&が入っているようには見えないので、Googleの検索ロボットやブラウザは「静的URL」として扱い「そのページが実在している」と思い込んでいます。 でも、実は、静的URLが動的URLに変換されて、CGIでデータベースを引っ張っているのです。 難しく考えても仕方が無いので「一発目の静的URLへのリクエストで、データベースから引っ張って来られたページ内容が返って来たら、そのページが実在すると思い込む」と思っていれば間違いないです。

  • chie65535
  • ベストアンサー率43% (8514/19356)
回答No.1

Wikiは「URLに仕掛けがある」のです。 ある語句をWikiで見ると wikiの基本URL/語句 と言うURLになっています。 wikiのWEBコンテンツは「wikiの基本URL/語句」と言うURLでアクセスされると、リクエストが「とある1つのCGI」に渡され、そのCGIが「リクエストされたURLから、語句を取り出して、データベース検索して、データベースが返した結果をHTMLに整形して、リクエスト元に返す」のです。 アクセスした側から見ると「まるで『wikiの基本URL/語句』と言うURLのページが存在して、そのページが表示されている」ように見えます。 Googleが検索の為にページをクロールする場合も「まるで、そのページのURLが存在して、普通にページの内容が返って来るように見える」ので、返って来たページ内の語句を普通に収集します。 貴方が質問した、このページ http://okwave.jp/qa/q8673633.html も、上記URLのページは実在しません。 okwave.jpが「http://okwave.jp/qa/q8673633.htmlを見せて」と言うリクエストを受け取ると、CGIが起動して、CGIが、リクエストされたURLから「q8673633」の部分を取り出して、「q8673633」の質問内容をデータベースから引っ張り、データベースが返してきた結果を「これがページの中身です」と、リクエスト先に返すのです。 ページの内容を返されたブラウザやGoogleの検索ロボットは「そのページが実在するのか、それとも、ページが実在しないでデータベースから返された結果なのか、区別できない」のです。

関連するQ&A

  • データベース連動型のwikiライクなページを作りたい

    MySQL5&PHP5を使っている者です。(まだ始めたばかりです) MySQLで貯めたデータベースをwikiのように登録・編集できるようにしたいのですが、その為のツールを探しています。 PHPベースでラフが書ければ、あとは自分で仕上げるつもりです。 PukiWikiは、どんなもんかと思い本を一冊買いましたが、イマイチ、といったところです。 MySQL5&PHP5を前提としたデータベース連動型のwikiライクなページのラフを作るのにいいツール、記述PukiWikiのような入門書、CakePHPのようなフレームワークなど、お勧め&ご存知の方おられましたら、アドバイスいただけると幸いです。

  • データベースにアクセスするWebページ

    どちらに質問してよいかわからずこちらに質問させていただきます。 私が担当しているのは、既に公開されているWebページの変更です。 写真や文字列など、変更があるたびにHTMLファイルを開いて 手作業で更新作業をしているところに、データベースにアクセスして データベースの情報を表示するように変更することになりました。(←ここが私の担当です) ※既存のWebページは私が制作したものではありません。 「困っているのは既存のWebページへの実装方法」で、 既に試した方法は 1. データベースの情報を表示する箇所を、まるまる   別HTMLで作成し、JavaScriptでajax通信にて動的に項目を作成するページをつくって   IFRAMEにて既存のページに埋め込む方法をしてみました。   見事動作したのですがこれには問題点がありました。   それは私が実装したIFRAMEの中のHTMLは、JavaScriptが読めない人には   扱えないということでした。   また、JavaScriptだけでなく、CSSも既存ページに合わせて作り直す必要もあり、   他のページに同じようにデータベースの内容を表示して!と言われたら大変な手間がかかります。 2. 既存のHTMLファイルにオリジナルのスクリプトを埋め込む方法。   たとえば<span>#todays_news;</span>のような感じです。      この方法で記述して、http://xxx.jp/解析.php?url=HTMLファイル   にアクセスすると解析.phpがオリジナルスクリプトの埋め込まれたHTMLファイル内の   スクリプトを、データベースから取得したデータに置き換えて出力します。   これの問題点は   サイトのindexからリンクをクリックしてもらえれば解析.phpを通して   データベースの内容で置き換えたページが出力されますが、   直接、HTMLファイルへアクセスされるとオリジナルスクリプトが丸見えになってしまいます。   またSEO対策で不利になるのではと考えています。 そこで、データベースの内容を変更すると、すべてのHTMLファイルを解析.phpに通して出力してしまおう、という考えです。しかしこれだとデータベースの内容を変更するたびすべてのHTMLを書き換えることになり、なんとも効率的ではない気がするのです。 データベースの内容を表示するのに、 HTMLをロードしてからJavaScriptにて動的にコンテンツを生成するのか、 なにかしらの方法で、データベースの内容を反映させたHTMLファイル(静的)を置くのか はたまた、違う方法なのか、 とーっても悩んでおります;;;;;;;; 職場にはJavaScriptやPHP,MySQL等を理解しているものはおらず、 だれにも聞けなくてここで質問させていただきました。 どうかアドバイスお願いいたします><。

  • データベースへの日本語入力

    PHPとMySqlを勉強し始めたものです。 超初心者ですが、よろしくお願いします。 @PAGES(http://atpages.jp/)というサイトを使っています。 ネットで見つけたサンプルプログラムを使って、データベース(MySql)へのデータの入力と読み出しをやってみたのですが、半角英数字なら、読み込みや書き出しはできるのですが、日本語の文字であれば、空白になってしまいます。 プログラムを調べてみると、PHPでのデータベースへの書き込みのときは、ちゃんと日本語の文字を書き出そうとしているようなのですが、「phpMyAdmin」というサイトで書き込まれた情報を見てみると、空白なので、データベース側がデータの受け取りを拒絶したようにも思われます。 サイトで検索して、HTMLの<HEAD></HEAD>のところに下記のような行を入れたり、 <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> 『mysql_query("SET NAMES 'utf8'"); 』という行をデータの書き込み行の前に入れたりしても、変わりませんでした。 どのようにすれば、日本語もデータベースで扱えるようになるのか教えてください。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • PHPとポストグレーSQLでデータベース検索システムを作っているのですが

    当方タイトル道理ポストグレーSQLを用いてHTMLとPHPで 検索フォームを作ってデーターベースを作っているのですが現在の方法では検索結果がひとつのページに全部出てしまい非常に処理が重くなってしまいますので10件づつ表示したいのですが当方まったくの初心者でうまく出来ずにいます。どこをどのようにすればうまくいきますでしょうか?一応LIMITとOFFSETというのを使えば出来ると調べることができましたができずじまいです。一応検索部分のプログラムを貼り付けておきます。ここは文字制限があるので 分割して貼り付けます

    • ベストアンサー
    • PHP
  • データベース内の情報を検索できるフリーの日本語全文検索システムを探しています

    データベース内の情報を検索できるフリーの日本語全文検索システムを探しています。 具体的には、ブログのように、テキストを入力するとページが生成されるような仕組みをPHPで作っています。 入力された情報は、MySQLに保存しているのですが、生成されたページを検索したいのですが、よく使われるNamazuでは、静的HTMLしか検索してくれないようで、使えません。 kabayakiと言う、ライセンス費のかかるシステムは発見できたのですが、費用た大きくかかる為、フリーのものを探しています。 方法論として、生成するページをHTMLベースで吐き出せばNamazuでもできると思いますが、動的なページを直接検索できるシステムがあればと思うのですが、経験者の方、または、ご存知な方がいらっしゃいましたら、是非、お知恵を頂ければと思います。 宜しくお願いいたします。

    • ベストアンサー
    • CGI
  • データベースのSEO対策?

    多くの物件データを扱う企業ページを作成しています。 今のところ、SEO対策にと言われ、全てのページを手作業でHTMLで作っているのですが、データが増えてきて(数千件)なんとか更新の手間を減らせないか検討しています。 データベースとCGIを使ったページだと、検索に引っかからないと聞いているのですが、このようにたくさんのデータを扱うページを作るのによい方法はありませんでしょうか。 PHPだと検索にひっかかるとかXMLを使うといいとか、断片的な情報を聞くのですが、私自身あまり詳しくないのでよくわかりません。 どんなことでもいいので、教えていただけますか?

    • 締切済み
    • CGI
  • データベースを作りたい

    研究のデータベースを作りたいと思っています。 イメージとしては、wikipediaのように、検索すると、その項目と説明が出てくるようにしたいです。 できたら、ほかの項目にリンクが張れればいいなと思っています。 プログラムには、かなり疎いです。 何か良い方法はありますでしょうか?

  • データベースシステムについて

    データベースシステムについて (1)データベース管理システムの役割 a データベースのデータの定義や検索・更新を行う。 b データベースのデータを分析して、たとえば顧客のニーズなどを探る。 c データベースのデータを不正なアクセスから守る。 d データベースのデータの重複や誤りなどをチェックする。 答え C ? (2)データベースシステムを導入することによって期待できる効果 a データの様々な分析手法を中に組み込むことができる。 b データの精度が向上する。 c データ項目が変更されても、プログラムの修正が最小にできる。 d データの転送が高速化できる。 答え C ? なんか、どれも正解のように思えるんですが 答えってCであってますか? どなたか、詳しく解説できる方がいらっしゃいましたら、よろしくお願いいたします!

  • ファイルアップロード・検索システム

    PHPでファイルをアップロードし、ダウンロードでき、ファイルをキーワード検索ができるシステムを作成しようと思うのですが、PHPだけでなくMySQLなどのデータベースも必要ですか? ファイルをアップロードする際にそのファイルの詳細を付加させ(プルダウンメニューによる選択)、検索はそのプルダウンメニューで選択された語句でしたいと考えています。

    • ベストアンサー
    • PHP
  • データベースとテキストファイルの優位性

    私はRedhatLinux+Apache+PHP+PostgreSQL(レンタルサーバーのVPS)を使ってホームページ作成サイトを構築しようとしています。 ホームページ作成方法は、ユーザーはHTMLを記述することなく、テンプレート化されたデザインにタイトルや見出しの内容を入力することで作成していく方法です。 そこで、各ユーザーのHTML構成要素の情報をデータベースで管理する方が良いか、テキストファイルで管理する方が良いか悩んでおります。 仮に1000人が平均10ページ所有し、ページ要素として各ページに10個登録したとするとすると、データ件数1000×10×10で10万件。会員1万人だと100万件。いづれデータがパンクするであろうし、常にページ更新作業の為、DB接続・切断の繰返し、PostgreSQLへの負荷も尋常ではない気がします。 そこで、各ユーザー専用のディレクトリパスを用意し、そこにHTML構成要素の情報をテキストファイルにて管理する方法が良いと考えました。 唯、確固たる理論に基づいての判断ではありません。 サーバー負荷が最も心配なのですが、検索などにはテキストよりデータベースを用いたほうが良いことはわかりますが、こういったサイト構成管理などは果してデータベースは有効な判断になるのでしょうか? とりあえずテキストファイルを選択するとしたらブラウザから閲覧できないpublic_html/より上部ディレクトリにテキストを保管しようと考えてます。セキュリティなどの考慮も踏まえてどなたか回答宜しくお願います。

専門家に質問してみよう