我的目录结构“喜欢”这个
我在Admin中有一些文件需要.htaccess禁止。我知道他们应该在根本之外但在这种情况下我不能。 htaccess将直接请求重定向到'Sub Dir A / Admin / abc.php'(比如一个禁止的文件)回到说Sub Dir A / Admin / index.php的正确语法 - 只是一个例子。要注意“abc.php”可能是一个包含,因此它应该只是一个直接请求。哦忘了问,将.htaccess文件放在哪个目录
答案 0 :(得分:1)
如果您真的想要使用mod_rewrite执行此操作,那么规则可以是:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteRule ^abc\.php$ http://www.example.com/subdir_a/admin/index.php [R=301,L]
如果您尝试直接访问abc.php
,则会发出301永久重定向。
这将放在/subdir_a/admin/
文件夹中的.htaccess中。
如果您愿意 - 可以将它放在网站根文件夹中的.htaccess文件中 - 然后稍微更改重写规则以包含abc.php
的路径:
RewriteRule ^subdir_a/admin/abc\.php$ http://www.example.com/subdir_a/admin/index.php [R=301,L]
或者,您可以发出403拒绝访问响应:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteRule ^abc\.php$ - [F,L]
通常的做法是不继续使用.htaccess和mod_rewrite(在某些共享主机方案中可用,或出于性能原因而禁用)并使用PHP脚本端检查:
1。要放在包含/受保护的文件中(例如abc.php):
if (!defined('ENTRY_POINT_MARK')) {
header('HTTP/1.1 403 Access Denied', true, 403);
exit();
}
2。要放入调用/主脚本(可以直接访问):
define('ENTRY_POINT_MARK', 'EntryPointMark');