0
我有一个带有html文件的静态网站,我想在没有.html结尾和尾部斜杠的情况下调用它们。.htaccess删除.html扩展名并添加尾部斜杠并禁止.html文件
例如:
www.test.com/test.html
应该可以下
www.test.com/test/
我管理这个具有以下的.htaccess
Options -Multiviews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^([^\.]+)/$ $1.html
不过的URL引线的两个版本相同页。我如何重定向(没有.html)或为.html版本扔404?
www.test.com/test.html
这是带有斜线的工作解决方案。谢谢@arkascha!
Options -Multiviews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^/?(.+)\.html$ /$1/ [R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^([^\.]+)/$ $1.html [END]
我已经试过了。这不起作用,因为它以无限循环结束。 (第五行尾部的斜线缺失:RewriteRule^/?(。+)\。html $/$ 1/[R = 301]) –
我没有看到上面的规则集应该如何在无尽的重写循环中结束..当然你没有尝试过类似的东西?关于该尾随斜线:添加这样的斜杠是很少见的,这就是为什么我将它遗漏出去的原因...... – arkascha
我复制了您的代码1:1,并且谷歌浏览器以ERR_TOO_MANY_REDIRECTS结尾。我用不同的浏览器和电脑试过了。尝试一下,你会遇到同样的问题。 –