mod_rewriteを使い、
RewriteRule ^kensaku/(.*)_([0-9]+)\.html$ kensaku\?i=$1&page=$2 [L]
静的ファイルへのアクセスで動的ファイルの結果を返す所まではたどりつきました。
教えていただきたいのは、検索ボタンを押した時にすぐに静的ページに飛ぶ方法です。
例えばこちらのサイト様 http://www.su-jine.com/ のように検索後のページを静的に表示したいです。
どうかご指導よろしくお願いいたします。
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
加えて、
RewriteRule ^kensaku\?i=([^&]*)&page=(.*) kensaku/$1_$2.html [R=301,L]
みたいな感じでどうでしょう。
ご回答ありがとうございました!
教えていただいたように加えてみたのですがうまくいきませんでした。 私もこのやり方でできるように思ったのですが、なにかそれ以前に間違っている箇所があるのでしょうか??
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で飛ばすということでよろしいでしょうか? そのときの条件などはどのように記述すればいいのか具体的なご指導よろしくお願いします。
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ではどのように記述すればよいのでしょうか?
追伸
回答オープンの変更教えていただきありがとうございました!
無事思った事ができました!
ありがとうございました^^
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ではどのように記述すればよいのでしょうか?
追伸
回答オープンの変更教えていただきありがとうございました!
無事思った事ができました!
ありがとうございました^^