- ベストアンサー
htaccessでmod_rewrite
htaccessに下記のように記述しました。 RewriteEngine on RewriteRule ^([0-9A-Za-z_]+)/$ index.php?p=$1 [L] RewriteRule ^([0-9A-Za-z_]+)/([0-9A-Za-z_]+)/$ index.php?p=$1&m=$2 [L] RewriteRule ^([0-9A-Za-z_]+)/([0-9A-Za-z_]+)/([0-9A-Za-z_]+)/$ index.php?p=$1&m=$2&y=$3 [L] RewriteRule ^sample/test/([0-9A-Za-z_]+)/$ sample/test.php?id=$1 [L] すると 「http://www.○○○.jp/index.php?p=●」 は 「http://www.○○○.jp/●/」 「http://www.○○○.jp/index.php?p=●&m=△」 は 「http://www.○○○.jp/●/△/」 「http://www.○○○.jp/index.php?p=●&m=△&y=■」 は 「http://www.○○○.jp/●/△/■」 でアクセスできました。 が、 「http://www.○○○.jp/sample/test.php?id=★」 は 「http://www.○○○.jp/sample/test/★/」 でアクセスできません。 おそらく、 「http://www.○○○.jp/sample/test/★/」を 「http://www.○○○.jp/index.php?p=sample&m=test&y=★」 として認識しているためだと思いますが、 対策がわかりません。 このような場合は、どう対処すればよいのでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
順番を変えたらどうでしょうか 4番目のルールを1番上に持ってくる
その他の回答 (1)
- level2012
- ベストアンサー率63% (12/19)
mod_rewriteは使った事もないですけど、 質問のコードで上からルールを見ていくと >「http://www.○○○.jp/sample/test.php?id=★」 >は >「http://www.○○○.jp/sample/test/★/」 >でアクセスできません。 testディレクトリっておかしくないですか?
お礼
上の三行を削除するとうまく表示されるので、 ディレクトリが間違っているわけではなかったです。
お礼
ありがとうございます。 無事解決できました。