Apache .htaccess向请求的文件添加尾部斜杠

Apache .htaccess向请求的文件添加尾部斜杠,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我已经搜索了将近两天,为什么这对我不起作用。关于这一点,我读到很多问题都有一个重写规则的答案,如下所示: 重写规则。*index/$index.html[L,R=301] 但这需要用户手动附加尾部斜杠 当请求传入example.com/index时,我希望在客户端浏览器中将URL更改为example.com/index/ 另外,如果我在浏览器中手动附加尾部斜杠,我总是会得到一个404页面未找到错误。这完全有道理,因为没有名为index.html/的文件。这是一个浏览器的东西还是我可以通过.hta

我已经搜索了将近两天,为什么这对我不起作用。关于这一点,我读到很多问题都有一个重写规则的答案,如下所示:

重写规则。*index/$index.html[L,R=301]

但这需要用户手动附加尾部斜杠

当请求传入example.com/index时,我希望在客户端浏览器中将URL更改为example.com/index/

另外,如果我在浏览器中手动附加尾部斜杠,我总是会得到一个404页面未找到错误。这完全有道理,因为没有名为index.html/的文件。这是一个浏览器的东西还是我可以通过.htaccess规则来实现

因此,我希望用户请求example.com/index,它被转发到example.com/index.html,但在浏览器中显示example.com/index/。我想要斜线,因为我觉得它看起来更整洁


谢谢。

您可以在htaccess中将当前代码替换为此代码

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ /$1/ [R=301,L]

RewriteRule ^index/$ /index.html [L]

注意:您可能需要清除浏览器的缓存,因为您的旧301规则可能仍然存在

完美,谢谢!我必须禁用多视图才能工作,但我可以创建自己的规则来执行多视图的功能。