我一直在使用一系列有效的设置来创建这个非常不错的.htaccess文件。我想知道现在是否有可能仅在拒绝直接访问相同文件的同时允许通过平面链接访问文件。
为了更好地提出这个问题,请考虑以下内容:
我有一个文件:即该文件myFile.php
位于子文件夹中:即my/path/to/file/
该文件的完整路径将是my/path/to/file/myFile.php
通过URL访问该文件,可能会这样写:my.domain.com/my/path/to/file/myFile.php
在我的.htaccess文件中,我编写了一个重写规则,类似于下面的代码行(在某些代码之前RewriteCond
,确保分别满足有关主机和文件名的条件):
RewriteRule ^home$ \/my\/path\/to\/file\/myFile.php [NC,L]
这意味着试图进入我的页面的人my/path/to/file/myFile.php
可以简单地编写my.domain.com/home
而不是使用丑陋的路径my.domain.com/my/path/to/file/myFile.php
。
我要问的是:
是否有可能在允许myFile.php
某人或机器尝试通过my.domain.com/my/path/to/file/myFile.php
的同时阻止对某人或机器的访问my.domain.com/home
?
任何有关此的帮助将不胜感激
如果有人或机器试图访问myFile.php,是否有可能阻止访问myFile.php
my.domain.com/my/path/to/file/myFile.php
,同时始终允许通过以下方式访问文件:my.domain.com/home
是的,可以使用THE_REQUEST
变量,它表示Apache从您的浏览器收到的原始请求,并且在执行某些重写规则后不会被覆盖。
您可以使用此规则来阻止直接访问该特定文件:
RewriteCond %{THE_REQUEST} /my/path/to/file/myFile\.php[?/\s] [NC]
RewriteRule ^ - [F]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句