回答編集履歴

1 追記、訂正

TaichiYanagiya

TaichiYanagiya score 9104

2016/06/30 09:22  投稿

`<Files>` に指定するファイル名には、上位ディレクトリは含めることができないのではないでしょうか。
`<Files "detail.php">` または `<Files ~ "detail\.php$">` にするといいと思います。
/products/ 以下に限定したいのであれば、(docroot)/.htaccess ではなく、(docroot)/products/.htaccess で設定ください。
また、RewriteRule ですが、.htaccess でリライトした場合、もう一度ルールの先頭に戻って評価されるので、うまくいかない(2回目は product_id=5 が付かない→admin_accessが設定されない)と思います。
`RewriteRule ^.*$ - [E=admin_access:1]` でリライトしないようにするとうまくいくかもしれません。
`RewriteRule ^.*$ - [E=admin_access:1]` でリライトしないようにするとうまくいくかもしれません。
(追記) ウソでした。ごめんなさい。
httpd.conf で OK、.htaccess で NG なので、RewriteRule が再評価されるからでは?と思ったのですが、違いました。「$1」でも「-」でもパスが変わらないので、リライト処理は終了します。
tanat さんの回答のとおり、先に「Deny from env=admin_access」が評価されるので、ダメみたい。
リライトの部分だけでも httpd.conf に設定するしかないと思います。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る