编辑:我的问题的原因是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>
但我想我做得不对。
下面的答案实际上回答的问题是,由于特殊情况,它并没有解决我的问题。所以我将其标记为正确,我将进一步调查此问题
答案 0 :(得分:2)
<DirectoryMatch>
只能在服务器配置文件或虚拟主机上下文中使用,而不能通过.htaccess使用。
您可以使用mod_rewrite阻止访问。确保模块已启用,然后使用以下指令:
RewriteEngine on
RewriteRule ^~ - [F,L]