「さくらのレンタルサーバ」で「.htaccess(mod_rewrite)」の設定がわかりません。


他の方の質問・回答の応用かと思うのですが…
http://www.ドメイン/○○○/●●●/』というURLで『http://www.ドメイン/○○○.php?param=●●●』を呼び出し、
http://www.ドメイン/△△△/▲▲▲/』というURLで『http://www.ドメイン/△△△.php?param=▲▲▲』を呼び出し、
http://www.ドメイン/□□□/■■■/』というURLで『http://www.ドメイン/□□□.php?param=■■■』を呼び出し…と、
どんどん増やしていくには、どうしたら良いでしょうか?
1つの場合の設定は検索で分かったのですが、複数の場合の設定がどうしても発見できません。

さらには、上記…
http://www.ドメイン/○○○/●●●/』というURLで『http://www.ドメイン/○○○.php?param=●●●』を呼び出し、
http://www.ドメイン/○○○/●●●/◎◎◎/』というURLで『http://www.ドメイン/○○○.php?param=●●●&param2=◎◎◎』を呼び出し…という設定も同時に可能でしょうか?
それとも、こちらはPHPで処理するのでしょうか?

どうぞ、よろしくお願いいたします。

回答の条件
  • 1人3回まで
  • 登録:2008/04/12 18:53:16
  • 終了:2008/04/19 18:55:03

回答(1件)

id:y-kawaz No.1

y-kawaz回答回数1421ベストアンサー獲得回数2262008/04/12 19:39:43

ポイント60pt

複数のルールが必要ならその数だけRewriteRuleを書けばいくつでも設定できます。複数RewriteRuleが記述されている場合は上から順に評価して最初にマッチしたものが実行されるだけです。

ただ、質問のケースだと○○○や△△△用などのRewriteRuleを複数書かなくても以下のような設定ですべてカバーできるんじゃないかと思います。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?([^/]+)?/?([^/]+)?/? /$1.php?param=$2&param2=$3 [L,QSA]

3段以上のディレクトリもparam3、param4などに書き換えたければ ([^/]+)?/? と paramX=$X の部分を必要な数だけ増やして書いておけばよいです。

id:cue-tom

ありがとうございます。

早速、設置してみたのですが…

http://www.ドメイン/○○○.php?param=●●●&param2=◎◎◎』というURLにアクセスしますと…

$param = $_GET{'param'};

$param2 = $_GET{'param2'};

…で、$paramには●●●が、$param2には◎◎◎が代入されるのですが、

http://www.ドメイン/○○○/●●●/◎◎◎/』というURLにアクセスしますと代入されません。

「$_GET{'param'}」で取得するのではないのでしょうか?

それから「複数のルールが必要ならその数だけRewriteRuleを書けばいくつでも設定できます」の設定も教えていただけませんか?

2008/04/12 22:12:13

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

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

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

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

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