使用htaccess,我能够在没有文件扩展名的情况下制作我的html网址功能,但文件扩展名仍然存在。例如:
example.com/index 和 example.com/index.html 两个存在!
我只想让我的html文件网址存在于单个被剥离的网址中 (例如example.com/index)
我已尝试手动删除文件中的.html文件,但文件只会以纯文本形式加载。我能做些什么才能达到我想要的效果?
htaccess代码:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ $1.html
答案 0 :(得分:1)
重写并没有实际删除扩展名。它只允许您不使用它并在规则内部重写它。此外,您无法手动使文件扩展名消失。它必须在那里工作。因此,除了当前规则之外,您还需要检查请求并在其上输入.html
时重定向到无扩展名网址。使用此规则,让我知道它是如何工作的。
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^&\ ]+).html
RewriteRule .* /%1? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ $1.html [L]