mod_rewriteを使って、動的URLから静的URLにしようとしました。


しかし、動的ページである***/index.php?mode=result_view&start=1&end=8&now=2&sort_text=newを、静的ページ***/mode-start1-end8-now2-sort_text_new.htmlにしようと以下のように設定しましたが、うまくいきません。

RewriteRule ^mode-start([0-9]+)-end([0-9]+)-now([0-9]+)-sort_text([0-9A-Za-z]+).html+ index.php?mode=view_result&start=$1&end=$2&now=$3&sort_text=new

なぜかどの静的URLを開いても、***/index.phpのページしか表示されないのですが、どのように設定すればいいのでしょうか?

ちなみに、このページは、絞込み検索用ページで、検索結果を複数ページに分割表示させています(pagenationさせています)。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/01/10 16:47:52
  • 終了:2007/01/17 16:50:02

回答(3件)

id:b-wind No.1

b-wind回答回数3344ベストアンサー獲得回数4402007/01/10 16:56:53

ポイント27pt
RewriteRule ^/mode-start([0-9]+)-end([0-9]+)-now([0-9]+)-sort_text([0-9A-Za-z]+)\.html index.php?mode=view_result&start=$1&end=$2&now=$3&sort_text=new [L]

はてな記法の都合で&を全角表記してあるので半角に差し替えてください。


先頭マッチなら、スラッシュもいると思う。

あと、ドットをエスケープするのと html の後ろの + は不要。

http://www.net-newbie.com/trans/mod_rewrite.html

id:maxikira

ありがとうございます。やってみたのですが、先頭のスラッシュを入れるとうまく表示されず、スラッシュをとると、やはりindex.phpがひょうじされてしまうようです。。

2007/01/10 17:24:26
id:kilrey No.2

kilrey回答回数16ベストアンサー獲得回数02007/01/10 20:03:04

ポイント27pt

http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

URLはマニュアルです。

アンダーバーが一つ抜けていませんか?

RewriteEngine on
RewriteRule ^mode-start([0-9]+)-end([0-9]+)-now([0-9]+)-sort_text_([0-9A-Za-z]+)\.html index.php?mode=view_result&start=$1&end=$2&now=$3&sort_text=$4

という.htaccess(&は半角にしてください)を使ったら望む通りに動きましたよ。

環境はApache2.0 on Fedora Core 2です。

ちなみに以下のようなindex.phpを使いました。

<?php
var_dump($_GET);
?>

http://localhost/mode-start1-end8-now2-sort_text_new.htmlにアクセスした結果は

array(5) { ["mode"]=>  string(11) "view_result" ["start"]=>  string(1) "1" ["end"]=>  string(1) "8" ["now"]=>  string(1) "2" ["sort_text"]=>  string(3) "new" }

でした。

id:maxikira

ありがとうございます。

よくわかりました。

2007/01/10 21:21:08
id:stephanie No.3

stephanie回答回数29ベストアンサー獲得回数22007/01/10 20:54:46

ポイント26pt

/mode-start1-end8-now2-sort_text_new.html

でアクセスするためにはsort_textのあとのアンダバーが抜けているようです。

これでいかがでしょうか?

RewriteEngine on
RewriteRule ^mode-start([0-9]+)\-end([0-9]+)\-now([0-9]+)-sort_text_([0-9A-Za-z]+)\.html index.php?mode=view_result&start=$1&end=$2&now=$3&sort_text=$4

http://q.hatena.ne.jp/1168415270

id:maxikira

ありがとうございます。

2007/01/10 21:21:14

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません