Html Apache:删除扩展名,但文件和文件夹名称相同

Html Apache:删除扩展名,但文件和文件夹名称相同,html,apache,.htaccess,Html,Apache,.htaccess,嗨,伙计们, 我即将完成在Apache(GoDaddy Linux主机)下构建静态html网站的工作,但最近我遇到了一个问题 我从文件中删除了html扩展名,但是,我的目录中有多个文件夹与这些文件同名 当然,当我尝试访问其中任何一个时,我会得到错误403 有没有办法通过htaccess文件解决这个问题 我的访问权限: Options +FollowSymLinks -MultiViews RewriteEngine On RewriteBase / RewriteCond %{THE_REQUE

嗨,伙计们, 我即将完成在Apache(GoDaddy Linux主机)下构建静态html网站的工作,但最近我遇到了一个问题

我从文件中删除了html扩展名,但是,我的目录中有多个文件夹与这些文件同名

当然,当我尝试访问其中任何一个时,我会得到错误403

有没有办法通过htaccess文件解决这个问题

我的访问权限:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.html [NC]
RewriteRule ^ %1 [R,L,NC]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^ %{REQUEST_URI}.html [L]
我尝试了谷歌在搜索中建议的几个命令,但都是针对php站点的,在我的案例中没有一个有效

你能帮我吗?
谢谢

我猜问题不在于您当前的规则,而是mod_dir在您的规则有机会处理请求之前重定向了请求

默认情况下,mod_dir会将缺少尾部斜杠的目录的任何请求重定向到具有尾部斜杠的相同请求。这可能是导致问题的原因,所以你需要关闭它

只要关闭了
索引
选项,就可以打开目录斜杠,否则可能会公开目录内容。因此,请尝试:

DirectorySlash Off
Options +FollowSymLinks -MultiViews -Indexes
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.html [NC]
RewriteRule ^ %1 [R,L,NC]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^ %{REQUEST_URI}.html [L]

如果您请求一个同时映射到文件和目录的URL,您希望服务哪一个?一直都是档案吗?嗨,乔恩。嗯,两者都很重要,而且在某种程度上都是有约束力的。让我更好地解释一下:这是一个音乐网站。该文件包含艺术家的个人资料以及包含音乐和歌词的文件夹。因此,当用户单击艺术家时,我更喜欢打开文件。只有当用户想要访问音乐和歌词时,它才会打开文件夹。Jon Lin认为,始终映射文件对我来说是一个不错的选择。你能告诉我怎么做吗?嗨,乔恩。谢谢我稍后会试试你的代码,因为我现在没带笔记本。我会回来说它是否有效。不管怎样,谢谢你的回复。嗨,乔恩。抱歉耽搁了。这些天我的工作“杀了我”。但是你的代码工作起来很有魅力。非常感谢