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

現在yomiサーチのphp版を改造して静的表示の検索サイトを作成しています。
mod_rewriteを使い、
RewriteRule ^kensaku/(.*)_([0-9]+)\.html$ kensaku\?i=$1&page=$2 [L]

静的ファイルへのアクセスで動的ファイルの結果を返す所まではたどりつきました。

教えていただきたいのは、検索ボタンを押した時にすぐに静的ページに飛ぶ方法です。
例えばこちらのサイト様 http://www.su-jine.com/ のように検索後のページを静的に表示したいです。

どうかご指導よろしくお願いいたします。

●質問者: mayo33
●カテゴリ:ウェブ制作
✍キーワード:HTML mod_rewrite PHP アクセス サイト
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● bewind
●10ポイント

加えて、

RewriteRule ^kensaku\?i=([^&]*)&page=(.*) kensaku/$1_$2.html [R=301,L]

みたいな感じでどうでしょう。

◎質問者からの返答

ご回答ありがとうございました!

教えていただいたように加えてみたのですがうまくいきませんでした。 私もこのやり方でできるように思ったのですが、なにかそれ以前に間違っている箇所があるのでしょうか??


2 ● b-wind
●20ポイント

form で指定した先の CGI 等で、リダイレクトをかければよいかと。

#!/usr/bin/perl

use strict;
use CGI;
my $q = CGI->new();
my $query = $q->param('query');
print "Location: /kensaku/${query}_0.html\n";

な感じですかね。(テストはしてませんのであくまで動作イメージとして捕らえてください。)

◎質問者からの返答

ご回答ありがとうございました!

すいませんあまりphpはまだ勉強中でして、ありまり詳しくありません。 例えではなかなか理解ができません。 教えていただいたform で指定した先、リダイレクトなどのキーワードを元にネットで調べてみました。

今改造しているプログラムはrequireで他のファイルを読み込んでいるのですが、その後にheader Locationで飛ばすということでよろしいでしょうか? そのときの条件などはどのように記述すればいいのか具体的なご指導よろしくお願いします。


3 ● bewind
●50ポイント ベストアンサー

1番の者です。

すみません、その後いろいろ調べたら、URL の?以降はクエリ文字列として別扱いになるので、RewriteRule での書換えはでき無そうですね。


PHP 版 Yomi-Search の静的表示化ということで調べてみましたら、

Yomi-Search(PHP)のSEO対策 静的表示化

http://blog.sourcefeed.jp/eid/1100103127/

というものがあったようなのですが、サイトを閉鎖されたようですね。

一応こちら

http://web.archive.org/web/20050310044831/blog.sourcefeed.jp/eid...

で当時の情報は確認できるようです。

このような情報は既に参照済みでしょうか。

この改造では、rewrite や redirect などで表示をごまかすのではなく、PHP 内で URL のパスを解析するようですが、改造箇所は多いようですね。


余談ですが、回答受付中のコメントを表示する設定にしていただくと、回答オープンのポイントをご負担いただかなくてもフォローができますので、もしよろしければ設定の変更をお願いします。

http://hatena.g.hatena.ne.jp/hatenaquestion/20060824/1156414553

◎質問者からの返答

bewindさんありがとうございます。

教えていただいたページは参照済みです。

現在htaccessにはRewriteRule ^kensaku/(.*)_([0-9]+)\.html$ kensaku\?i=$1&page=$2 [L]

と記述しています。kensaku/query_1.html とういう感じでurlを入力するとkensaku?i=query&page=1のページが表示されるのですが、検索ボタンを押すことでkensaku?i=query&page=1のページではなくkensaku/query_1.htmlのページを表示したいと思っています。

上で回答下さったb-windさんのリダイレクトかけるという方法かと思うのですが、どのように記述すればよいのかわかりません。 phpではどのように記述すればよいのでしょうか?

追伸

回答オープンの変更教えていただきありがとうございました!



無事思った事ができました!

ありがとうございました^^

関連質問


●質問をもっと探す●



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