.htaccess忽略,而apache.config说它被激活

编辑澄清,因为所有的答案/评论在谈论其他事情,然后话题到现在

我证实我的apache.conf(Ubuntu)说,它寻找.htaccess ,它允许.htaccess覆盖一切:

 #... AccessFileName .htaccess #... <Directory /var/www> AllowOverride All Options FollowSymlinks </Directory> 

然后我把下面的.htaccess (使用权限755)放到我的/var/www

 order allow, deny deny from all 

然后我重新启动我的服务器作为root ,以确保configuration再次加载,并没有文件访问权限可以伤害我的实验: sudo apache2ctl restart

结果是,他仍然打开文件夹,就好像没有.htaccess 。 什么可能是错的? 还有什么我可以检查,以确保它正常工作?

编辑 :我也检查如果写垃圾创build一个错误消息,它不!

 <Directory /> AllowOverride All </Directory> 

你不应该这样做; 这引用了文件系统根目录。
相反,只能从文档菜单中定义允许的AllowOverrides。
(并且,可选地,在你的UserDirs中)

服务器查找/ var / www /作为他的web目录,并在我链接到我的主目录中的另一个文件夹

为了允许符号链接,必须为源目录设置FollowSymLinks(在你的情况下,/ var / www)

而不是这些不安全的设置,请使用以下内容:

 <Directory /> AllowOverride None Order allow,deny Deny From All </Directory> <Directory /var/www> AllowOverride All Options FollowSymlinks </Directory> 

注意,对于Apache来实际读取符号链接的文件,它们必须是可访问的; 在大多数情况下,这意味着目录和文件必须是世界可读的,目录是世界可执行的。