- ベストアンサー
mod_rewriteについて
いつもお世話になっております。 mod_rewriteを使ってURLの書き換えをしたいと思っております。 下記のようなファイルがあるとします。 http://www.domain.com/aaa/list.php http://www.domain.com/aaa/detail.php http://www.domain.com/bbb/list.php http://www.domain.com/bbb/detail.php PHPファイルはHTMLに書き換えています。 ---------------------------------------- RewriteEngine on # QUERY_STRING RewriteRule /([a-z]+)\/([a-z]+)\/([0-9]+)\.html$ /$1/$2.php?$3 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.*)\.html$ /$1.php [L] ---------------------------------------- http://www.domain.com/aaa/detail/2.html http://www.domain.com/bbb/detail/2.html 上記どちらにアクセスしてもページが表示されませんと なってしまいます。 どうぞ、ご教授お願いいたします。 <環境> PHP:4.3.2 Apache:2.0.40 (Red Hat Linux)
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こうしたら行きませんか。 RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([a-z]+)/([a-z]+)/([0-9]+)\.html$ $1/$2.php?$3 [L]
その他の回答 (1)
- php504
- ベストアンサー率42% (926/2160)
自信はないですが RewriteRule ^/([a-z]+)\/([a-z]+)\/([0-9]+)\.html$ /$1/$2.php?$3 [L] か RewriteRule ([a-z]+)\/([a-z]+)\/([0-9]+)\.html$ $1/$2.php?$3 [L] を試してみては
お礼
php504 さん、ご回答ありがとうございます。 ご指示いただいたルールでできました。 ありがとうございます。
お礼
Rayderl さん、ご回答ありがとうございます。 ご指示いただいたものでできました。 ファイル名にアンダーバーが入っているものもありましたので 以下のルールでできました。 RewriteRule ^(.*)\/(.*)\/([0-9]+)\.html$ $1/$2.php?$3 [L] ありがとうございました。