Apache 阻止所有未被重写规则重写的文件

Apache 阻止所有未被重写规则重写的文件,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我有一个使用PHP的网页,我正在使用mod_rewrite制作更简单的URL,比如 RewriteRule ^login$ /php/pages/login.php [L] 我想做的是阻止直接访问目录/php。但如果我使用类似于: RewriteRule ^php - [R=404,L,NC] 在文件的末尾,即使是重写的URL也会被阻止,因为.htaccess会与重写的URL一起再次在子目录中使用。如果可能的话,我不想在每个目录中放置另一个.htaccess。 我还用REQUEST\u UR

我有一个使用PHP的网页,我正在使用
mod_rewrite
制作更简单的URL,比如

RewriteRule ^login$ /php/pages/login.php [L]
我想做的是阻止直接访问目录
/php
。但如果我使用类似于:

RewriteRule ^php - [R=404,L,NC]
在文件的末尾,即使是重写的URL也会被阻止,因为.htaccess会与重写的URL一起再次在子目录中使用。如果可能的话,我不想在每个目录中放置另一个.htaccess。
我还用
REQUEST\u URI
尝试了
RewriteCond
,但没有任何运气。

在.htaccess结束时:

RewriteCond %{REQUEST_URI} ^/php/    
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule . - [R=404,L]

found[END]标志,但Apache2不支持此标志。请在我的文件末尾添加此标志:RewriteCond%{the_REQUEST}/php/RewriteRule。-[R=404,L]有效,但有风险