naonaosnf回答ポイント なしウォッチ 1

Apacheのmod_rewriteによる設定でルートを除外したい

DocumentRoot下に
 index.php
 abc.php
というファイルと
 prg/
 aaa/
というディレクトリがあり、
~.jp/bbb
など指定していないディレクトリ参照のアクセスの場合にmod_rewriteでprg内へrewriteして処理させたいと考えています。
(prgディレクトリ内はindex.phpとdef.phpのみ)
現在、
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} !^/abc.php
RewriteCond %{REQUEST_URI} !/?prg/?
RewriteCond %{REQUEST_URI} !/?aaa/?
RewriteRule ^\/([0-9a-zA-Z_\-]+)\/? /prg/index.php [L]
RewriteRule ^\/([0-9a-zA-Z_\-]+)\/index.php /prg/index.php [L]
RewriteRule ^\/([0-9a-zA-Z_\-]+)\/def.php /prg/def.php [L]
と定義したところ、
~.jp/index.php:rewriteしない
~.jp/abc.php:rewriteしない
~.jp/aaa:rewriteしない
~.jp/aaa/:rewriteしない
~.jp/bbb:rewriteする
~.jp/bbb/:rewriteする
~.jp/bbb/def.php:rewriteする
と希望通りなのですが、
~.jp/
~.jp
というルート直下へアクセスした場合にrewriteされてしまいます。
どうすればこれを回避することができるでしょうか?

ログインして回答する

ベストアンサー

その他の回答

この質問へのコメント

コメントはありません

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

質問の情報

登録日時
2013-08-28 11:36:14
終了日時
2013-09-04 09:46:02
回答条件
1人5回まで

この質問のカテゴリ

この質問に含まれるキーワード

mod_rewrite174REQUEST_URI42Apache1359PHP7798Rewrite38AAA765ABC440ディレクトリ1525

人気の質問

メニュー

PC版