阻止所有未被RewriteRule重写的文件

时间:2012-11-22 13:20:56

标签: apache .htaccess mod-rewrite

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

RewriteRule ^login$ /php/pages/login.php [L]

我想要做的是阻止直接访问目录/php。但如果我使用类似的东西:

RewriteRule ^php - [R=404,L,NC]

在文件的末尾,即使重写的URL被阻止,因为.htaccess再次使用重写的URL在子目录中使用。如果可能的话,我不想在每个目录中放置另一个.htaccess。 我还尝试RewriteCondREQUEST_URI没有任何运气。

1 个答案:

答案 0 :(得分:0)

在.htaccess的末尾:

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