人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

まとめ検索のURLって、たとえば[hoge]で検索した場合、
http://www.matome.jp/keyword/hoge
ってなりますよね。
http://www.matome.jp/keyword?q=hoge
なら解るのですが、/hogeはどのようにして動作しているのでしょうか?
誰かご存知の方、よろしくお願いします。
まとめ検索
http://www.matome.jp/

●質問者: stray_sheep
●カテゴリ:コンピュータ
✍キーワード:hoge URL まとめ検索 検索
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ● federal
●15ポイント

http://sheepman.parfait.ne.jp/wiki/RewriteRule

.htaccessにてmod_rewriteを使用すればご掲示のサイトと同様の動作をさせることができます。

具体的な記述につきましては個々のサイトによってちがいますので、ご掲示のサイトがどのような設定をしているかはわかりません。


一例として以下のように設定しhttp://example.com/に設置しhttp://example.com/hogeにアクセスすると、

http://example.com/keyword.php?q=hogeと同じ動作をします。

-------------------------------------------------

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ([0-9A-Za-z]+)$ keyword.php?q=$1 [L]

-------------------------------------------------

◎質問者からの返答

ありがとうございます。

なるほどー、そういうApacheのモジュールがあるのですね。

調べてみます。


2 ● ton-boo
●15ポイント

http://tech.bayashi.net/svr/doc/apache/mod_rewrite.html

mod_rewrite

送られてきたURLをサーバ側でどう解釈するかという問題なので、サーバ側の設定次第です。

例えばApacheでは、mod_rewriteというモジュールの設定をすることで、

http://www.matome.jp/keyword/hoge

http://www.matome.jp/keyword?q=hoge

と同等なものだとサーバが解釈してからCGIに処理を渡すような設定ができます。

◎質問者からの返答

ありがとうございます。


3 ● HackySS
●100ポイント

http://mm.apache.jp/pipermail/apache-users/2004-March/003911.htm...

[Apache-Users 3721] Re: GET で動的ページに ? 以外で引数を渡す方法

要するにこう言うことのようです。

http://www.nilab.info/docs/cgi/draft-coar-cgi-v11-03-clean-jp.ht...

Common Gateway Interface - 1.1 *Draft 03* ($BK.Lu(B)

元々の意図としては、CGIスクリプトの設置されているサーバー内のどこかのPathを渡すためのもののようですが。

http://hoohoo.ncsa.uiuc.edu/cgi/env.html

CGI Environment Variables

で、ここがCGIの規格の環境変数の辺り。

◎質問者からの返答

ありがとうございます!

perlで確認したところ、確かにPATH_INFOの中に値が入ってました。

規格もじっくり読んでみます。


4 ● yoo15x
●20ポイント

http://iwamode.com/etc/cgi_env_param.html

HTTP 環境変数の『PATH_INFO』というものを利用して実現できます。

http://hotwired.goo.ne.jp/webmonkey/2000/10/index2a_page6.html

Hotwiredからのお知らせ : Hotwired

アクセスされた URL がどのように変数として分解されるのかはこんな感じです。

http://cgi.bookstudio.com/path_info/path_info3.htm

こんな風に変更すれば大抵のスクリプトは PATH_INFO 利用での動作が可能になります。

◎質問者からの返答

詳しい解説のページを教えていただき、ありがとうございます。


5 ● siachan
●20ポイント

http://mikeneko.creator.club.ne.jp/~lab/web/htaccess/mime.html#S...

$B%_%1%M%3$N(B htaccess $B%j%U%!%l%s%9(B

keywordというファイルがCGIです。環境変数PATH_INFOに/hogeと入っているので、それを元に処理すればOK。


特定のファイルをCGIと認識させるには、.htaccessで


<Files keyword>

SetHandler cgi-script

</Files>


のようにします。


また、/keyword/hoge/?m=detail などとなっていた場合は、?より後はQUERY_STRINGに入ります。

◎質問者からの返答

ありがとうございます。

keywordの方にも工夫が必要ですよね。


1-5件表示/6件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ