[mod_rewrite] [php]動的URL→静的URLについて その3


私が行った質問「http://q.hatena.ne.jp/1151099466」と似ているのですがちょっとだけ違う質問。

http://hoge.net/hoge.php?navi=0&idol=19&query=%E9%80%A2%E4%B9%83%E3%81%86%E3%81%95%E3%81%8E

http://hoge.net/_hoge/0/19/%E9%80%A2%E4%B9%83%E3%81%86%E3%81%95%E3%81%8E/
のような形で表示したい。

しかしhttp://hoge.net/の下には複数個、例えばhoge.php、fuga.php、uho.phpがあります。

上記質問の場合、hoge.netの下にhoge.phpしか無かったので以下のような記述を.htaccessへ行えばよかったのですが

>>
DirectoryIndex hoge.php

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^_hoge/([0-9]+)/([0-9]+)/(.+)/$ hoge.php?navi=$1&idol=$2&query=$3
<<

同じディレクトリに複数個、例えばhoge.php、fuga.php、uho.phpとある場合、どういう記述が考えられますか?

ご教示のほど、よろしくお願いします。。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2006/06/25 18:10:12
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:wizemperor No.1

回答回数379ベストアンサー獲得回数52

ポイント60pt

下記のように書けば上手くいくと思います。

保存した「.htaccess」を「http://hoge.net/」へ転送してみてください。

http://hoge.net/foo/0/19/~/」の「foo」の部分がそのままphpスクリプトに対応するようになります。

(foo -> foo.php、hoge -> hoge.php、fuga -> fuga.php)


DirectoryIndex index.html

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.+)/([0-9]+)/([0-9]+)/(.+)/$ $1.php?navi=$2&idol=$3&query=$4

「DirectoryIndex index.html」は「http://hoge.net/」にアクセスされたときに表示するファイルにしておいてください。(この行は必要ない場合も多いですが念のため。)

id:catfrog

出来ました!

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

2006/06/25 18:09:53

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

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

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

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

回答リクエストを送信したユーザーはいません