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

Block access at folders starting with ~ and all of their folders/files

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

最近我收到来自 google 的网络钓鱼警告,与我的服务器中不存在的文件有关。它显示为托管在我的服务器上的原因是因为我使用的是 shared/reseller Apache 托管包。所以我发现如果我知道网站所有者的用户名,我可以访问与我的网站托管在同一服务器上的另一个网站的任何文件。

意味着我可以访问

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

嗯,这种行为是不可取的,所以我想使用 .htaccess

拒绝通过我的域访问其他人的网站

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

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

但我想我做的不对。

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

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

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

RewriteEngine on
RewriteRule ^~ - [F,L]