htaccess删除文件扩展名仍然存在扩展名

时间:2015-04-26 03:06:37

标签: apache .htaccess

使用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

1 个答案:

答案 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]