我在 Ubuntu 11.04 Web 服务器上运行 Apache 2.2.20。我有一个 Joomla 网站在其上运行,但我还添加了一些自定义内容。我在主 Web 中直接添加了一个文件夹,/images/sub_folder
并在其中sub_folder
放了一些图片。我不希望任何人能够直接从 Web 访问这些图片,因此我.htaccess
在其中创建了一个文件sub_folder
,并在其中放入了以下行:
deny from all
似乎没有任何影响,我仍然可以直接从 Web 浏览器访问图像。我已重新启动 Apache 服务。我做错了什么?
谢谢
蒂姆
答案1
在您的 apache 配置中拒绝目录的条目,如下所示:
<Directory "yourdirectoryabsolutepath" >
Options Includes
AllowOverride All
Order allow,deny
Deny from All
</Directory>
如果您需要输入登录密码才能从 Web 访问文件夹,则需要在要保护的文件夹中创建一个 .htaccess 文件,并为能够登录的用户创建一个密码文件,但必须从 apache 配置中将“全部”更改为“允许”,并在 .htacces 中输入如下内容
AuthName "Password Protected Directory"
AuthType Basic
AuthUserFile /pathtoyourpasswdfile/.htpasswd
require valid-user
并使用类似这样的网站来创建你的加密密码,格式与你的 apache 使用的格式相同
http://www.edwinbush.com/my-tools-page/htpasswd-content-generator/
就是这样,现在当你需要进入文件夹时,会显示一个提示并要求你输入用户和密码。可能需要重新启动 apache
答案2
在您网站的配置文件中,您必须使用AllowOverride All
。这将使用您在文件中提到的任何内容覆盖先前的配置指令.htaccess
。
注意:出于安全原因,请勿将块中的 AllowOverride 设置为 None 以外的任何值。相反,请查找(或创建)引用您实际计划放置 .htaccess 文件的目录的块。
请参阅以下链接。
http://httpd.apache.org/docs/2.2/mod/core.html#allowoverride http://httpd.apache.org/docs/2.2/howto/htaccess.html#how