みなさま
いつもお世話になっております。
htaccessのmod_rewiteについて、期待したどおりの動きにならなく
半日程調べましたが、息詰まったので質問させていただきます。
■環境
LAMP環境(レンタルサーバ)
■問題
mod_rewiteで設定した転送が意図したとおりになりません
■現象
①サーバ上のドキュメントルート直下に.htaccessを設置
(ドキュメントルート直下にはindex.phpを設置)
②同ディレクトリ内に「/test_dir/」というディレクトリを設置
中にindex.phpを設置
③ブラウザからアクセス
正常パターン(画面は問題なく表示されます)
http://ドメイン名/1/
http://ドメイン名/abc/
■期待する動作
テストディレクトリ「test_dir」にアクセスした時だけ、
mod_rewiteの転送ルールを無効にしたい
■備考
各ファイルには以下のように記述しています。
(.htaccess 内に以下の設定のみ記述) RewriteEngine On RewriteBase / RewriteRule ^([0-9a-zA-Z]+)/$ index.php?id=$1 [QSA,L] RewriteRule ^([0-9a-zA-Z]+)/index.php$ index.php [QSA,L] RewriteRule !^/test_dir/(.*) - [C]
5行目の設定でtest_dirのディレクトリのみ、mod_rewiteを無効にしたかったのですが、
3行目、4行目の設定が有効になり、index.php?id=test_dirというように解釈されて画面が表示されます。
また、次のような記述も試しましたが、動作しませんでした(上記と同じ動作)
RewriteCond %{REQUEST_URI} !^/test_dir/*.*$
以上になります。
お手数かけますが、どなたか詳しい方ご教示いただいきたいと思います。
どうぞよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/08 08:52