当前出现了一个意料之外的问题:静态网站访问路径对应的是文件夹时,会列出对应的目录文件。
我们需要这样的效果:目录中存在 index.html,则允许访问;否则返回404,而不是列出目录。
上传证书
Options -Indexes
RewriteEngine on
# 如果添加后缀.html后文件存在,那么添加后缀
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html
# 如果请求的文件名是目录,并且目录中存在 index.html,则允许访问
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_FILENAME}/index.html -f
RewriteRule ^ - [L]
# 如果请求的文件名是目录,并且目录中不存在 index.html,则返回 404 错误
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [R=404,L]
ErrorDocument 404 /home/foo.bar/domains/nicelee.top/public_html/404.html