• ベストアンサー

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)

質問者が選んだベストアンサー

  • ベストアンサー
  • Rayderl
  • ベストアンサー率83% (40/48)
回答No.1

こうしたら行きませんか。 RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([a-z]+)/([a-z]+)/([0-9]+)\.html$ $1/$2.php?$3 [L]

wonder_dct
質問者

お礼

Rayderl さん、ご回答ありがとうございます。 ご指示いただいたものでできました。 ファイル名にアンダーバーが入っているものもありましたので 以下のルールでできました。 RewriteRule ^(.*)\/(.*)\/([0-9]+)\.html$ $1/$2.php?$3 [L] ありがとうございました。

その他の回答 (1)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

自信はないですが 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] を試してみては

wonder_dct
質問者

お礼

php504 さん、ご回答ありがとうございます。 ご指示いただいたルールでできました。 ありがとうございます。