「さくらのレンタルサーバ」で「.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/19 18:55:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:y-kawaz No.1

回答回数1422ベストアンサー獲得回数226

ポイント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

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

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

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

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

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