【发布时间】:2017-10-20 21:03:13
【问题描述】:
我有一个带有 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]
【问题讨论】: