Apache 阻止所有未被重写规则重写的文件
我有一个使用PHP的网页,我正在使用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
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]有效,但有风险