重写模式正常时,如何用.htaccess禁止网站目录列表显示?
解决.htaccess目录列表泄露问题
嘿,这个问题很好解决,根本不用给每个目录都塞index.php!只需要在你现有的.htaccess里加一行指令就能搞定:
Options -Indexes
怎么用:
- 把这行放在你现有重写规则的最前面(比如
RewriteEngine On之前),确保它优先生效。 - 这行指令会告诉Apache服务器:当某个目录找不到默认索引文件(比如index.php、index.html)时,别把目录里的文件列表展示出来,直接返回403禁止访问的错误。
可选升级:自定义403页面
要是你不想让用户看到服务器默认的403页面,可以再加一行自定义错误页的配置:
ErrorDocument 403 /custom-403.php
把路径换成你自己做的错误页就行。
小提醒:
如果加了之后没生效,可能得确认下服务器的AllowOverride配置有没有包含Options——不过你已经能正常用重写规则,大概率这个配置是没问题的。
现在再试试访问http://localhost/includes/?这类路径,应该就不会看到目录文件列表啦。
内容的提问来源于stack exchange,提问作者joe
相关产品推荐
相关产品推荐

