阻止访问以〜开头的文件夹及其所有文件夹/文件

时间:2015-08-03 09:10:32

标签: regex apache .htaccess wildcard

编辑:我的问题的原因是mod_userdir。因此,如果您的主机已启用mod_userdir,例如Hostgator经销商包,例如http://support.hostgator.com/articles/specialized-help/technical/apache-htaccess/mod_userdir,那么请确保您的主机可以禁用此功能。显然,Hostgator拒绝为特定主机软件包禁用此功能

最近,我收到了Google提供的与我的服务器中不存在的文件相关的网上诱骗警告。它出现在我的服务器上的原因是因为我在共享/经销商Apache托管包上。所以我发现如果我知道网站所有者的用户名,我可以访问与我的网站在同一服务器上托管的其他网站的任何文件。

意思是我可以访问

http://mywebsite.com/~somebodyelsesusername/any_path_to_their_files.php 

这种行为是不受欢迎的,所以我想通过我的域名使用.htaccess拒绝访问其他网站

如何阻止每个根文件夹,例如以〜开头的mydomain.com/~somefolder/,而不知道接下来会发生什么?当然,我必须阻止访问该文件夹的任何文件或文件夹。我试过了

<DirectoryMatch "^\~|\/\~">
  Order allow,deny
  Deny from all
</DirectoryMatch>

但我想我做得不对。

下面的答案实际上回答的问题是,由于特殊情况,它并没有解决我的问题。所以我将其标记为正确,我将进一步调查此问题

1 个答案:

答案 0 :(得分:2)

<DirectoryMatch>只能在服务器配置文件或虚拟主机上下文中使用,而不能通过.htaccess使用。

您可以使用mod_rewrite阻止访问。确保模块已启用,然后使用以下指令:

RewriteEngine on
RewriteRule ^~ - [F,L]