Htaccess – 删除 html 扩展 + 添加尾部斜杠 + 在子文件夹中查找索引(组合)

Htaccess – remove html extension + add trailing slash + find index inside subfolder (combined)

这个问题我已经纠结了一个星期了。

我的网站根目录是这样的:

index.html
page.html
subfolder/index.html
subfolder/page.html

我已经阅读了大量关于做这 3 件事的帖子。我实际上可以单独完成它们,但我不知道如何将它们组合起来!

  1. 删除 .html 扩展程序
  2. 自动在子文件夹
  3. 中寻找index.html
  4. URL 的末尾添加斜杠(即 www.domain.com/subfolder/page.htmlwww.domain.com/subfolder/page/

如果在写 www.domain.com/page.htmlURL 会自动更改为 www.domain.com/page/

那就太棒了

提前致谢!

我目前的 htaccess:

RewriteEngine on

RewriteCond %{THE_REQUEST} /([^.]+)\.html [NC]
RewriteRule ^ /%1 [NC,L,R]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)/$ .html [NC,L]

RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^ %{REQUEST_URI}.html [NC,L]

用这个替换你所有的代码块:

DirectoryIndex index.html
RewriteEngine on

# redirect file.html to /file/
RewriteCond %{THE_REQUEST} \s/+(.+?)\.html\s [NC]
RewriteRule ^ /%1/ [R=302,NE,L]

# added .html extension to /file by checking presence of file.html
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/.html -f
RewriteRule ^(.+?)/?$ .html [L]