我的 httpd.conf 使用 MultiViews 选项来为以下 URL 提供 HTML 文件:http://服务器/博客。这可以正常工作,除非存在同名的目录 - Apache 将尝试为该目录提供服务。
有什么方法可以确保 blog.html 优先于 blog/,或者更确切地说:尽管存在匹配的实体(目录),我是否可以根据 MultiView 进行 Apache 进程内容协商?
在 nginx 中,我可以明确地执行以下操作:
try_files $uri $uri.html $uri/ =404;
答案1
我退而求其次使用 mod_rewrite。以下规则仅重写不带点(“.”)的 URL,因此 /images/image.jpeg 保持不变:
RewriteRule ^/([^\.]+)$ /$1.html [L]