使用.htaccess从url中删除.html

时间:2016-03-29 22:53:43

标签: html .htaccess

我试图从网址中删除.html,以便www.example.com/page.html成为www.example.com/page。 我尝试使用.htaccess代码:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

我的HTML代码很简单:<a href = "page">link</a>

每次点击链接时都没有工作,出现错误页面

3 个答案:

答案 0 :(得分:1)

我认为你想添加而不是删除.html(重写pagepage.html
您可以使用:

Options -MultiViews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.html -f
RewriteRule ^(.+)/?$ $1.html [L]

答案 1 :(得分:0)

这样的事情应该有效。

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

答案 2 :(得分:0)

我找到了答案 - How to remove .html from URL。这是唯一有效的.htaccess脚本:

RewriteEngine on
RewriteBase /
RewriteCond %{http://www.proofers.co.uk/new} !(\.[^./]+)$
RewriteCond %{REQUEST_fileNAME} !-d
RewriteCond %{REQUEST_fileNAME} !-f
RewriteRule (.*) /$1.html [L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+)\.html\ HTTP
RewriteRule ^([^.]+)\.html$ http://www.proofers.co.uk/new/$1 [R=301,L]