- PR -

mod_rewrite でディレクトリかどうか調べたい

1
投稿者投稿内容
banban
会議室デビュー日: 2004/11/02
投稿数: 1
投稿日時: 2004-11-02 17:25
はじめまして、mod_rewrite で詰まってしまったので、質問させてください。

mod_rewrite で URL の置換をするとき、既存ディレクトリへのアクセスをスルーさせたいと思っています。

こういう配置で、

/prog.php
/subdir/index.php ... (DefaultIndex index.php)

として

/xxxxx

というリクエストを

/prog.php?id=xxxxx

に置換する場合、設定を下記のようにしました。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/([[:alnum:]_]+)/?$ /prog.php?id=$1

すると、

/xxxxx

は設定どうりに置換されます。しかし、

/subdir または、 /subdir/

は、置換して欲しくないのですが、

/prog.php?id=subdir

をアクセスしに行きます。

期待としては、

/subdir/index.php

をアクセスして欲しいと願っているのですが・・・。

この部分、

RewriteCond %{REQUEST_FILENAME} !-d

ログで眺めると、match となっているので、「ディレクトリが存在していない」と判断されているようです。

正しくディレクトリと判断させるには、どう設定する必要がありますでしょうか?

Apache は、2.0.50 です。
Fedora Core 1
1

スキルアップ/キャリアアップ(JOB@IT)