禁用对特定目录及其内容的访问

我有一个网站,其中包含几个Web应用程序。 每个Web应用程序都对应于名称以“Web”开头的文档根目录的子目录。 (例如, /WebLulzGenerator/WebInternetHateMachine是Web应用程序,但是/MoarHelperz不是。)

我希望这些Web应用程序只能通过HTTPS提供,所以我在httpd.conf文件中做了以下操作:

 <Directory /> Options FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> <DirectoryMatch "^/Web[A-Za-z0-9]+"> Order allow,deny Deny from all </DirectoryMatch> # In extra/httpd-ssl.conf, access to "^/Web[A-Za-z0-9]+" # is reenabled, but only through HTTPS. 

但是,当我testing我的configuration“ http:// myip / WebTest ”正确打开。 我究竟做错了什么?

映射到资源的物理位置。 您应该使用<Location><LocationMatch>作为位置。

 <LocationMatch /Web.*> Order Allow,deny Deny from All </Location> 

请注意文档中的以下警告:

<Location>部分完全在文件系统之外运行。 这有几个后果。 最重要的是,不应该使用<Location>指令来控制对文件系统位置的访问。 由于几个不同的URL可能映射到相同的文件系统位置,所以这种访问控制可能被绕过。